簡體   English   中英

鏈接器以哪種順序處理庫目錄?

[英]In which order does the linker process the library directories?

編譯期間,搜索路徑中可能存在多個庫實例。 鏈接器處理目錄以什么順序包含在搜索路徑中? 有問題的平台是Sun OS。

將按照在命令行中指定目錄的順序搜索目錄。 在默認目錄之前搜索命令行中指定的目錄。 無論選項出現的順序如何,所有-L選項都適用於所有-l選項。 LD_LIBRARY_PATH也可用於補充庫搜索路徑。 目錄搜索在包含匹配庫的第一個目錄處停止。

LD_LIBRARY_PATH雖然很棘手:

 LD_LIBRARY_PATH 

用於搜索使用-l選項指定的庫的目錄列表。 多個目錄由冒號分隔。 在最常見的情況下,它將包含由分號分隔的兩個目錄列表:

 dirlist1; dirlist2 

如果使用任意數量的-L調用ld,如:

 ld . . . -Lpath1 . . . -Lpathn . . . 

然后搜索路徑排序是:

  dirlist1 path1 . . . pathn dirlist2 LIBPATH 

當目錄列表不包含分號時,它將被解釋為dirlist2。

LD_LIBRARY_PATH還用於指定運行時鏈接程序的庫搜索目錄。 也就是說,如果環境中存在LD_LIBRARY_PATH,則運行時鏈接程序將在其默認目錄之前搜索其中指定的目錄,以便共享對象在執行時與程序鏈接。

在這里閱讀更多相關信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM