亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

LD_LIBRARY_PATH vs LIBRARY_PATH

LD_LIBRARY_PATH vs LIBRARY_PATH

LD_LIBRARY_PATH vs LIBRARY_PATH我正在構建一個簡單的C ++程序,我想暫時用一個系統提供的共享庫替換它的更新版本,以進行開發和測試。我嘗試設置LD_LIBRARY_PATH變量,但鏈接器(ld)失敗了:/ usr / bin / ld:找不到-lyaml-cpp我希望這可以工作,因為根據ld手冊頁:鏈接器使用以下搜索路徑來查找所需的共享庫:...對于本機鏈接器,環境變量“LD_LIBRARY_PATH”的內容...然后我嘗試設置LIBRARY_PATH,這很有效。根據GCC手冊:LIBRARY_PATH的值是以冒號分隔的目錄列表,與PATH非常相似。當配置為本機編譯器時,GCC會在搜索特殊鏈接器文件時嘗試這樣指定的目錄,如果它無法使用GCC_EXEC_PREFIX找到它們。在使用-l選項搜索普通庫時,使用GCC鏈接也會使用這些目錄(但首先使用-L指定的目錄)。正如(GCC)手冊所示,LIBRARY_PATH可行,因為我與GCC鏈接。但..由于我與gcc鏈接為什么要調用ld,因為錯誤消息表明?讓兩個變量服務于同一目的有什么意義?還有其他差異嗎?
查看完整描述

3 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

LIBRARY_PATH gcc在編譯之前用于搜索包含需要鏈接到程序的靜態庫和共享庫的目錄。

LD_LIBRARY_PATH在成功編譯和鏈接后,程序將使用它來搜索包含共享庫的目錄。

編輯:如下所述,您的庫可以是靜態的或共享的。如果它是靜態的,則將代碼復制到程序中,并且在編譯和鏈接程序后不需要搜索庫。如果你的圖書館是共享的,那么它需要動態鏈接到你的程序,并且當LD_LIBRARY_PATH它發揮作用時。


查看完整回答
反對 回復 2019-08-24
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

LD_LIBRARY_PATH在程序啟動時LIBRARY_PATH搜索,在鏈接時搜索。

來自評論的警告:


查看完整回答
反對 回復 2019-08-24
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

由于我與gcc鏈接為什么要調用ld,因為錯誤消息表明?

gcc在鏈接模式下內部調用ld。


查看完整回答
反對 回復 2019-08-24
  • 3 回答
  • 0 關注
  • 639 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號