cmake在編譯庫(kù)文件、應(yīng)用程序中的相關(guān)指令解讀
5. Application 目錄說(shuō)明
這個(gè)目錄的編譯輸出是:一個(gè)可執(zhí)行程序,其中調(diào)用了 libUtils 庫(kù)中的函數(shù)。
CMakeLists.txt 文件內(nèi)容如下:
三、Linux 系統(tǒng)下操作步驟
1. 創(chuàng)建構(gòu)建目錄 build$ mkdir build
在一個(gè)獨(dú)立的 build 目錄中編譯,生成的中間代碼不會(huì)污染源代碼,這樣對(duì)于使用 git 等版本管控工具來(lái)說(shuō)非常的方便,在提交的時(shí)候只需要 ignore build 目錄即可,強(qiáng)烈推薦按照這樣的方式來(lái)處理。
2. 執(zhí)行 cmake,生成 Makefile$ cd build
$ cmake ..
3. 編譯 Utils 庫(kù)$ cd Utils/src
$ make
在 CMakeLists.txt 中的最后部分是安裝指令,把產(chǎn)生的庫(kù)文件和頭文件,安裝到源碼中的 install 目錄下。
$ make install
4. 編譯可執(zhí)行程序 Application
Application 使用到了 libUtils.so 庫(kù),因此需要手動(dòng)把 libUtils.so 和頭文件,復(fù)制到 Application 下面對(duì)應(yīng)的 lib/linux 和 include 目錄下。
當(dāng)然,也可以把這個(gè)操作寫在 Utils 的安裝命令里。
$ cd build/Application/src
$ make
執(zhí)行生成的可執(zhí)行程序 main,即可看到輸出結(jié)果。
四、Widnows 系統(tǒng)下操作步驟
1. 通過(guò) cmake 指令生成 VS 工程
同樣的道理,新建一個(gè) build 目錄,然后在其中執(zhí)行 cmake .. 指令,生成 VS 解決方案,我使用的是 VS2019:
2. 編譯 Utils 庫(kù)文件
使用 VS2019 打開工程文件 DemoApp.sln,在右側(cè)的解決方案中,可以看到:
在 libUtils_shared 單擊右鍵,選擇【生成】:
此時(shí),在目錄 buildUtilssrcDebug 下面,可以看到生成的文件:
3. 編譯可執(zhí)行程序 Application
因?yàn)锳pplication需要使用 Utils 生成的庫(kù),因此,需要手動(dòng)把庫(kù)和頭文件復(fù)制到 Application 下面的 lib/win32 和 include 目錄下。
在 VS 解決方案窗口中,在 main 目標(biāo)上,單擊右鍵,選擇【生成】:
此時(shí),在目錄 buildApplicationsrcDebug 下可以看到生成的可執(zhí)行程序:
直接單擊 main.exe 執(zhí)行,報(bào)錯(cuò):
需要把 libUtils.dll 動(dòng)態(tài)庫(kù)文件復(fù)制到 main.exe 所在的目錄下,然后再執(zhí)行,即可成功。
五、總結(jié)
這篇文章的操作過(guò)程主要以動(dòng)態(tài)庫(kù)為主,如果編譯、使用靜態(tài)庫(kù),執(zhí)行過(guò)程是一樣一樣的。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?