亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

有關LD_LIBRARY_PATH與ld.so.conf

2024-06-28 13:23:23
字體:
來源:轉載
供稿:網友
有關LD_LIBRARY_PATH與ld.so.conf

我之前寫過一篇關于LD_LIBRARY_PATH與gcc/g++ -L的關系的文章,于是我自己用CPACK制作了一個Debian安裝包,然后我在/home/.bashrc里添加了export LD_LIBRARY_PATH=/usr/loca/lib:$LD_LIBRARY_PATH,再然后老大告訴我這個方法不行,打回重新想辦法,經過一番尋找終于找到了---ld.so.conf可以完美解決這個問題。

首先說說,為什么LD_LIBRARY_PATH不行?可以看看老外是怎么說的

一般LD用在下面情況:

  • 升級共享庫時,替換之前先測試一下
  • 類似的,升級后的某個程序可能依賴于一些動態鏈接庫,如果你將某個鏈接庫替換了,程序可能就無法工作了。這時候,你可以使用LD_LIBRARY_PATH指向存有備份的一個目錄,然后,你可以沒有顧忌地替換系統版本了。萬一出錯,拷貝回去就是了

感覺LD_LIBRARY_PATH就是臨時使用的,為什么呢?因為LD_LIBRARY_PATH如果設置成全局的話,如果被破壞掉的,那么就會出現大規模的破壞。不要說這個變量不會改,但是這樣做就是不妥的辦法,網上大家可以找到許許多多的關于LD_LIBRARY_PATH不好的文章。這里就不再多說

但是,如果不讓用LD_LIBRARY_PATH,我們該怎么辦呢?

linux系統為大家已經想好了辦法,我們使用ld.so.conf來解決。我們已經知道linux在加載動態庫的時候,會去標準路徑下(/lib,/usr/lib)下去尋找應用程序用到的動態庫。但對于我們那些不標準的路徑下我們安裝了lib庫,例如我把我的庫安裝到了/usr/local/lib下了,我們怎么辦呢?

Linux的通常做法是:將非標準路經加入 /etc/ld.so.conf,然后運行 ldconfig 生成 ld.so.cache。 Linux在加載共享庫的時候,會從 ld.so.cache 查找。[ldconfig需要在root權限下執行]

所以,我們在安裝了庫,但是編譯程序后,ldd發現鏈接不到庫,那么我們就要查看你安裝的庫是否是非標準路徑,如果是那么就把你的非標準路徑加入到/etc/ld.so.conf文件中,然后調用ldconfig生成下ld.so.cache,就可以了。想查看下你的庫是否已經在ld.so.cache中,可以這樣 ldconfig -p | grep lib**就可以了。

對于,Ubuntu來說,還與其他的LINUX系統不一樣,在/etc/ld.so.conf中只有一句include /etc/ld.so.conf.d/*.conf,也就是說它我們不能在/etc/ld.so.conf下添加,但是我們可以在/etc/ld.so.conf.d下新建一個*.conf在這里面添加你的非標準路徑就可以了,記得調用sudo ldconfig 生成ld.so.cache文件就可以了

補充:


說說今天又遇到的問題:(cmake之后出現的問題)

問題1:/usr/bin/ld: warning: libboost_system.so.1.55.0, need by /usr/local/lib/libboost_thread.so, may conflict with libboost_system.so.1.48.0

.....

問題2: `.text._ZN5boost16exceptions_detail10bad_alloc_D2Ev' refereced section `.text._ZN5boost16exceptions_detail10bad_alloc_D1Ev'..... of /usr/lib/gcc/x86_64-linux-gnu/4.8.2/../../../libboost_thread.a(thread.o)

這兩個問題折騰我了一下午,這兩個問題的變現不一樣,其實他們都是一個問題造成的。

首先說說為什么會這樣?

第一個問題:是由于系統里面在/usr/lib下面有一個libboost_system.so.1.48.0,而在/usr/local/lib下我安裝了一個libboost_system.so.1.55.0,造成了g++鏈接時的沖突

第二個問題:是由于在/usr/lib下有一個libboost_thread.a,而我在/usr/local/lib下安裝了libboost_thread.so.1.55.0,造成了g++鏈接的沖突錯誤。

現在問題來了,他們為什么會沖突呢?為什么呢?我們在編譯程序的時候,gcc/g++是怎樣搜索鏈接庫呢?

經過仔細尋找,我們使用 ld --verbose | grep SEARCH_DIR會出現下面的內容

SEARCH_DIR("/usr/i686-linux-gnu/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib");

這就是gcc再編譯的時候,所搜尋的庫文件所在的路徑,所以就出現了上面的問題。當gcc/g++在/usr/lib中發現這些庫之后,就不再搜索了,然后就讓gcc/g++鏈接了這些庫,而我需要的正確的庫應該在/usr/local/lib下,這就造成了鏈接了錯誤的庫文件。

解決方法就是:刪除掉/usr/lib下同名的不需要的或者版本過低的庫文件(目前是這樣做的,也許有更好的方法,知道的請告訴我)

上面查看gcc/g++/ld搜索路徑還有其他方法:

gcc -Wl, --verbose

gcc --PRint-search-dirs


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区二区久久国产| 亚洲欧美日韩综合| 国产精品久久久久久久av电影| 亚洲免费精彩视频| 亚洲成年网站在线观看| 精品综合久久久久久97| 欧美人在线观看| 8090理伦午夜在线电影| 国产91在线视频| 国产欧美日韩视频| 亚洲在线免费观看| 国产精品xxx视频| 国产剧情久久久久久| 久久久久国产精品一区| 久久夜精品va视频免费观看| 一本色道久久综合狠狠躁篇怎么玩| 久久香蕉国产线看观看av| 日韩av一区二区在线| 欧美高清在线观看| 欧美怡春院一区二区三区| 国产成人激情小视频| 亚洲а∨天堂久久精品喷水| 精品亚洲永久免费精品| 国产精品第一第二| 色综合亚洲精品激情狠狠| 欧美激情免费在线| 欧美成人第一页| 国产+成+人+亚洲欧洲| 欧美精品在线免费观看| 久久精品色欧美aⅴ一区二区| 久久视频免费观看| 国产亚洲精品久久久久久777| 久久99国产精品自在自在app| 国产大片精品免费永久看nba| 欧美性xxxxxx| www.欧美精品| 国产日韩欧美综合| 日韩有码片在线观看| 国产欧美va欧美va香蕉在线| 最近中文字幕日韩精品| 久久综合五月天| 国产精品看片资源| 国产精品自拍视频| 少妇激情综合网| 久久久精品亚洲| 久久久久久国产精品久久| 国产精品一区二区性色av| 91综合免费在线| 国产精品美女久久久久久免费| 国产成人免费91av在线| 国产精品久久久久久婷婷天堂| 国产精品69精品一区二区三区| 热久久美女精品天天吊色| 日韩性生活视频| 97国产在线视频| 国产91色在线|免| 欧美与黑人午夜性猛交久久久| 2019国产精品自在线拍国产不卡| 国产婷婷色综合av蜜臀av| 国内精久久久久久久久久人| 国产成人av网| 久久精品一偷一偷国产| 国产一区玩具在线观看| 欧美床上激情在线观看| 亚洲成人精品视频| 国产日韩欧美日韩大片| 亚洲精品在线观看www| 欧美在线视频在线播放完整版免费观看| 国内精品视频在线| 亚洲欧美国产视频| 日本欧美国产在线| 日本免费一区二区三区视频观看| 久久久久免费精品国产| 中文字幕亚洲一区在线观看| 欧美激情成人在线视频| 欧美中文在线观看| 国产在线视频不卡| 国产精品69久久| 久久亚洲国产精品成人av秋霞| 亚洲欧美日韩另类| 国产精品美女视频网站| 中文字幕少妇一区二区三区| 国产精品狠色婷| 免费成人高清视频| 亚洲欧洲一区二区三区在线观看| 国产精品久久久| 亚洲一区二区三区在线视频| 91福利视频在线观看| 精品无人区乱码1区2区3区在线| 亚洲综合日韩中文字幕v在线| 亚洲日本成人女熟在线观看| 日韩av电影国产| 精品成人av一区| 亚洲人成在线观看网站高清| 午夜剧场成人观在线视频免费观看| 国产精品爽爽爽| 午夜精品视频在线| 国产精品久久在线观看| 亚洲亚裔videos黑人hd| 在线播放精品一区二区三区| 亚洲aaa激情| 国产精彩精品视频| 成人国内精品久久久久一区| 国产精品久久久久久久美男| 午夜精品久久久久久久99黑人| 国产精品视频精品| 国产中文字幕日韩| 欧美电影免费观看高清完整| 69av视频在线播放| 亚洲最大在线视频| 97在线视频一区| 一区二区三区日韩在线| 69视频在线播放| 成人黄色午夜影院| 国产精品美女视频网站| 午夜精品久久久久久久99热浪潮| 高清日韩电视剧大全免费播放在线观看| 欧洲中文字幕国产精品| 日韩中文在线中文网在线观看| 欧美精品精品精品精品免费| 永久免费精品影视网站| 亚洲欧美日韩高清| 色老头一区二区三区在线观看| 97精品国产91久久久久久| 国产精品男人的天堂| 久久精品久久久久久| 国产精品免费在线免费| 亚洲第一在线视频| 26uuu亚洲伊人春色| 国产精品啪视频| 欧美极品美女电影一区| 欧美视频13p| 久久久久久一区二区三区| 国产精品久久婷婷六月丁香| 精品国产成人av| 性欧美xxxx视频在线观看| 国产一区二区三区直播精品电影| 国产精品久久久久久亚洲调教| 精品国产31久久久久久| 91久久久国产精品| 日韩av网站在线| 伊人久久免费视频| 一本色道久久88亚洲综合88| 亚洲福利视频网| 久久精品99国产精品酒店日本| 亚洲开心激情网| 亚洲人在线观看| 91精品国产自产在线老师啪| 久久天堂av综合合色| 中文字幕在线看视频国产欧美在线看完整| 国产日韩欧美日韩大片| 在线观看成人黄色| 国产精品人成电影在线观看| 久久躁狠狠躁夜夜爽| 91在线视频导航| 欧美在线性爱视频| 久久精品国产欧美亚洲人人爽| 国产精品91久久久久久| 亚洲片在线资源| 91精品国产高清久久久久久| 7m第一福利500精品视频| 日韩视频精品在线| 国产精品久久久久久av福利| 亚洲国产私拍精品国模在线观看|