cmake在編譯庫文件、應(yīng)用程序中的相關(guān)指令解讀
5. Application 目錄說明
這個(gè)目錄的編譯輸出是:一個(gè)可執(zhí)行程序,其中調(diào)用了 libUtils 庫中的函數(shù)。
CMakeLists.txt 文件內(nèi)容如下:
三、Linux 系統(tǒng)下操作步驟
1. 創(chuàng)建構(gòu)建目錄 build$ mkdir build
在一個(gè)獨(dú)立的 build 目錄中編譯,生成的中間代碼不會(huì)污染源代碼,這樣對(duì)于使用 git 等版本管控工具來說非常的方便,在提交的時(shí)候只需要 ignore build 目錄即可,強(qiáng)烈推薦按照這樣的方式來處理。
2. 執(zhí)行 cmake,生成 Makefile$ cd build
$ cmake ..
3. 編譯 Utils 庫$ cd Utils/src
$ make
在 CMakeLists.txt 中的最后部分是安裝指令,把產(chǎn)生的庫文件和頭文件,安裝到源碼中的 install 目錄下。
$ make install
4. 編譯可執(zhí)行程序 Application
Application 使用到了 libUtils.so 庫,因此需要手動(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. 通過 cmake 指令生成 VS 工程
同樣的道理,新建一個(gè) build 目錄,然后在其中執(zhí)行 cmake .. 指令,生成 VS 解決方案,我使用的是 VS2019:
2. 編譯 Utils 庫文件
使用 VS2019 打開工程文件 DemoApp.sln,在右側(cè)的解決方案中,可以看到:
在 libUtils_shared 單擊右鍵,選擇【生成】:
此時(shí),在目錄 buildUtilssrcDebug 下面,可以看到生成的文件:
3. 編譯可執(zhí)行程序 Application
因?yàn)锳pplication需要使用 Utils 生成的庫,因此,需要手動(dòng)把庫和頭文件復(fù)制到 Application 下面的 lib/win32 和 include 目錄下。
在 VS 解決方案窗口中,在 main 目標(biāo)上,單擊右鍵,選擇【生成】:
此時(shí),在目錄 buildApplicationsrcDebug 下可以看到生成的可執(zhí)行程序:
直接單擊 main.exe 執(zhí)行,報(bào)錯(cuò):
需要把 libUtils.dll 動(dòng)態(tài)庫文件復(fù)制到 main.exe 所在的目錄下,然后再執(zhí)行,即可成功。
五、總結(jié)
這篇文章的操作過程主要以動(dòng)態(tài)庫為主,如果編譯、使用靜態(tài)庫,執(zhí)行過程是一樣一樣的。
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字
最新活動(dòng)更多
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場仿真助跑新能源汽車
-
11月20日火熱報(bào)名中>> 2024 智能家居出海論壇
-
11月28日立即報(bào)名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國智造CIO在線峰會(huì)
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
推薦專題
- 1 【一周車話】沒有方向盤和踏板的車,你敢坐嗎?
- 2 特斯拉發(fā)布無人駕駛車,還未迎來“Chatgpt時(shí)刻”
- 3 特斯拉股價(jià)大跌15%:Robotaxi離落地還差一個(gè)蘿卜快跑
- 4 馬斯克給的“驚喜”夠嗎?
- 5 打完“價(jià)格戰(zhàn)”,大模型還要比什么?
- 6 馬斯克致敬“國產(chǎn)蘿卜”?
- 7 神經(jīng)網(wǎng)絡(luò),誰是盈利最強(qiáng)企業(yè)?
- 8 比蘋果偉大100倍!真正改寫人類歷史的智能產(chǎn)品降臨
- 9 諾獎(jiǎng)進(jìn)入“AI時(shí)代”,人類何去何從?
- 10 Open AI融資后成萬億獨(dú)角獸,AI人才之爭開啟
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市