如果使用自己手動(dòng)生成的動(dòng)態(tài)鏈接庫(kù).so文件,但是這個(gè).so文件,沒有加入庫(kù)文件搜索路勁中,程序運(yùn)行時(shí)可能會(huì)出現(xiàn)找不到動(dòng)態(tài)鏈接庫(kù)的情形。
可以通過ldd命名來(lái)查看可執(zhí)行文件依賴的動(dòng)態(tài)鏈接庫(kù),如下(其中test為可執(zhí)行程序):

如:ldd test
解決這個(gè)問題: 1.修改/etc/ld.so.conf配置 (1)將.so文件路徑的目錄添加到/etc/ld.so.conf
直接添加: sudo vim /etc/ld.so.conf
然后在ld.so.conf 末尾新添加.so庫(kù)路徑
添加配置: 創(chuàng)建exe.conf文件,里面加.so庫(kù)路徑,將該文件放到/etc/ld.so.conf.d目錄下; 在/etc/ld.so.conf文件中增加一行include ld.so.conf.d/exe.conf
(2)使得修改生效
sudo /sbin/ldconfig
2.通過編譯選項(xiàng) -wl,-rpath
-Wl選項(xiàng)告訴編譯器將后面的參數(shù)傳遞給鏈接器
-rpath指定動(dòng)態(tài)搜索的路徑
3.設(shè)置 LD_LIBRARY_PATH
LD_LIBRARY_PATH環(huán)境變量主要是用于指定動(dòng)態(tài)鏈接器(ld)查找ELF可執(zhí)行文件運(yùn)行時(shí)所依賴的動(dòng)態(tài)庫(kù)(so)的路徑,其內(nèi)容是以冒號(hào)分隔的路徑列表。
ld鏈接器將優(yōu)先在該變量設(shè)置的路徑中查找,若未找到則在標(biāo)準(zhǔn)庫(kù)路徑/lib和/usr/lib中繼續(xù)搜索。
臨時(shí)修改: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
永久修改:修改~/.bashrc或~/.bash_profile或系統(tǒng)級(jí)別的/etc/profile
a. 在其中添加例如export PATH=/opt/ActiveP/lib:$LD_LIBRARY_PATH b. source .bashrc (Source命令也稱為“點(diǎn)命令”,也就是一個(gè)點(diǎn)符號(hào)(.)。source命令通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄)
|