国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

執(zhí)行可執(zhí)行程序時(shí)遇到error while loading shared libraries錯(cuò)誤解決

這篇具有很好參考價(jià)值的文章主要介紹了執(zhí)行可執(zhí)行程序時(shí)遇到error while loading shared libraries錯(cuò)誤解決。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

執(zhí)行可執(zhí)行程序時(shí)遇到error while loading shared libraries錯(cuò)誤解決

執(zhí)行 ./provider -i test.conf 編譯引用了第三方庫zookeeper_mt.so的代碼后,執(zhí)行出現(xiàn)了以下錯(cuò)誤

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

這就是依賴的動(dòng)態(tài)庫找不到路徑導(dǎo)致的。

示例是我處理的過程如下,最后成功執(zhí)行:

[root@localhost ~]# ./provider -i test.conf
error while loading shared libraries: libzookeeper_mt.so.2
cannot open shared object file: No such file or directory
[root@localhost ~]# find / -name libzookeeper_mt.so.2
 find: ‘/run/user/1000/gvfs’: Permission denied
/usr/local/lib/libzookeeper_mt.so.2
/opt/zookeeper-3.4.10/src/c/.libs/libzookeeper_mt.so.2
[root@localhost ~]# ldconfig
[root@localhost ~]#  ./provider -i test.conf
error while loading shared libraries: libzookeeper_mt.so.2
cannot open shared object file: No such file or directory
[root@localhost ~]# echo "/usr/local/lib" >> /etc/ld.so.conf
[root@localhost ~]# ldconfig
[root@localhost ~]#  ./provider -i test.conf

解決方法有3種:

  1. 如果共享庫文件安裝到了/lib或/usr/lib目錄下, 執(zhí)行一下ldconfig命令。
    ldconfig命令的用途,主要是在默認(rèn)搜尋目錄(/lib和/usr/lib)以及動(dòng)態(tài)庫配置文件/etc/ld.so.conf內(nèi)所列的目錄下,搜索出可共享的動(dòng)態(tài)鏈接庫(格式如lib*.so*),然后創(chuàng)建出動(dòng)態(tài)裝入程序(ld.so)所需的連接和緩存文件,緩存文件默認(rèn)為/etc/ld.so.cache,此文件保存已排好序的動(dòng)態(tài)鏈接庫名字列表。

  2. 如果共享庫文件安裝到了/usr/local/lib(很多開源的共享庫都會安裝到該目錄下)或其它"非/lib或/usr/lib"目錄下,在執(zhí)行l(wèi)dconfig命令前,需要把新共享庫目錄加入到共享庫配置文件/etc/ld.so.conf中,如下:

[root@localhost ~]#cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
[root@localhost ~]#echo "/usr/local/lib" >> /etc/ld.so.conf
[root@localhost ~]#ldconfig
  1. 如果共享庫文件安裝到了其它"非/lib或/usr/lib" 目錄下,但是又不想在/etc/ld.so.conf中加路徑(或者是沒有權(quán)限加路徑)。那可以export一個(gè)全局變量LD_LIBRARY_PATH,然后運(yùn)行程序時(shí)會去目錄中找共享庫。此方法在當(dāng)前用戶下配置環(huán)境變量只是臨時(shí)生效,如果服務(wù)器不重啟那可能一直有效。萬一重啟了,就失效了,相當(dāng)于一次性的設(shè)置。
    LD_LIBRARY_PATH的意思是告訴loader在哪些目錄中可以找到共享庫。可以設(shè)置多個(gè)搜索目錄,這些目錄之間用冒號分隔開。
    比如安裝了一個(gè)mysql到/usr/local/mysql目錄下,其中有一大堆庫文件在/usr/local/mysql/lib下面,則可以在.bashrc或.bash_profile或shell里加入以下語句即可:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH  

采用第3種方法解決一下:文章來源地址http://www.zghlxwxcb.cn/news/detail-700504.html

[root@localhost ~]#export LD_LIBRARY_PATH=/home/work/ABCDEFG/lib/:$LD_LIBRARY_PATH 

到了這里,關(guān)于執(zhí)行可執(zhí)行程序時(shí)遇到error while loading shared libraries錯(cuò)誤解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包