【C++】44.使用xx.so动态链接库
如果有某些功能模塊代碼被編譯成了動(dòng)態(tài)鏈接庫文件(在linux下是xx.so的形式),那么該文件應(yīng)該和調(diào)用該動(dòng)態(tài)庫的二進(jìn)制執(zhí)行文件放在同級目錄下,否則會(huì)報(bào)錯(cuò)找不到相關(guān)文件。
但是當(dāng)有大量動(dòng)態(tài)鏈接庫時(shí),都和調(diào)用他們的二進(jìn)行文件放在一級目錄下,會(huì)使得目錄結(jié)構(gòu)不簡潔。所以需要使用一個(gè)方法來解決該問題。
可以使用以下方案:
將生成的動(dòng)態(tài)鏈接庫文件都放到某個(gè)lib目錄下,例如,放在二進(jìn)制文件(假如是bin_exe)的同級目錄下的lib目錄中,可以這樣做:
在終端中的二進(jìn)制同級目錄下輸入下面這兩行:
然后執(zhí)行二進(jìn)制文件 ./bin_exe,這樣就不會(huì)報(bào)錯(cuò)。
一般情況下,我們不是直接執(zhí)行二進(jìn)制文件,而是通過shell腳本間接執(zhí)行二進(jìn)制文件,如使用腳本bin_exe.sh調(diào)用二進(jìn)制文件,這樣也可以方便我們在二進(jìn)制文件后面跟上參數(shù)等。
注意目錄結(jié)構(gòu),shell腳本文件和二進(jìn)制文件不在同級目錄下。此時(shí),假設(shè)目錄結(jié)構(gòu)如下:
release ├── bin_exe.sh ├── bin | └── bin_exe └── lib├── xx1.so└── xx2.so解決方案如下:
shell腳本文件bin_exe.sh內(nèi)容如下:
最后直接執(zhí)行bash bin_exe.sh即可。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【C++】44.使用xx.so动态链接库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Tools】cmake 常用变量和常用
- 下一篇: 【C++】45.尽量不要在构造函数中调用