error while loading shared libraries: xxx.so.xx: cannot open shared object file: No such file or ...


我們在linux執(zhí)行可執(zhí)行程序的時(shí)候,有時(shí)候會(huì)遇到錯(cuò)誤提示找不到相應(yīng)的動(dòng)態(tài)鏈接庫,一般這有兩種情況,一個(gè)是沒有安裝相應(yīng)的動(dòng)態(tài)鏈接庫;還有一種就是安裝了相關(guān)的動(dòng)態(tài)鏈接庫,但是系統(tǒng)按照默認(rèn)的共享庫路徑找不到該動(dòng)態(tài)鏈接庫

1. 動(dòng)態(tài)庫已經(jīng)安裝到系統(tǒng)的默認(rèn)共享庫路徑 /lib或者 /usr/lib下

如果共享庫已經(jīng)安裝到/lib或者/usr/lib下面,那么只要執(zhí)行下命令 ldconfig就行了
ldconfig命令的作用在于(該執(zhí)行程序放在 /sbin目錄下):

在默認(rèn)搜尋目錄(/lib和/usr/lib)以及動(dòng)態(tài)庫配置文件/etc/ld.so.conf內(nèi)所列的目錄下,搜索出可共享的動(dòng)態(tài)鏈接庫(格式如前介紹,lib.so),進(jìn)而創(chuàng)建出動(dòng)態(tài)裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認(rèn)為/etc/ld.so.cache,此文件保存已排好序的動(dòng)態(tài)鏈接庫名字列表

2. 動(dòng)態(tài)庫安裝到非默認(rèn)共享庫路徑(比如/usr/local/lib或者用戶自定義的路徑)

如果所需要的動(dòng)態(tài)庫的安裝路徑不是 /lib 或者 /usr/lib, 那么可以將該動(dòng)態(tài)庫的路徑加入到動(dòng)態(tài)庫配置文件/etc/ld.so.conf里面,假定該動(dòng)態(tài)庫的路徑是 /usr/local/lib, 那么可以執(zhí)行以下命令

$ echo "/usr/local/lib" >> /etc/ld.so.conf
$ /sbin/ldconfig

3. 動(dòng)態(tài)庫安裝到非默認(rèn)共享庫路徑(比如/usr/local/lib或者用戶自定義的路徑),又不想更新/etc/ld.so.conf

有時(shí)候,我們自己開發(fā)的程序,可能會(huì)用到某個(gè)我們自己的某個(gè)動(dòng)態(tài)庫,然后我們不想將我們的自己的動(dòng)態(tài)庫安裝到默認(rèn)動(dòng)態(tài)庫路徑,也不想加入到/etc/ld.so.conf文件,那么我們可以將我們的自己的動(dòng)態(tài)庫路徑加入到環(huán)境變量LD_LIBRARY_PATH,然后運(yùn)行程序的時(shí)候,也會(huì)去這個(gè)環(huán)境變量所指的路徑去查找動(dòng)態(tài)庫,如果有多個(gè)路徑,以 ':'分開,比如我們的共享庫跟我們的可執(zhí)行路徑放在同一個(gè)目錄,那么可以如下操作:

$ export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH$
$ ./my_exe

4. 然后如果程序所需的動(dòng)態(tài)庫版本比系統(tǒng)已存在的共享庫版本低,但是共享庫向下兼容的話,可以建個(gè)軟連接

error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory

比如我的程序需要libmysqlclient.so.15, 然后系統(tǒng)里面已經(jīng)有l(wèi)ibmysqlclient.so.16,可以做個(gè)軟連接

ln -s libmysqlclient.so.16  libmysqlclient.so.15
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容