2010-10-05 38 views

回答

6

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

LD_LIBRARY_PATH是棘手的,但:

LD_LIBRARY_PATH 

其中的目錄列表以搜索與 -l選項指定的庫。多個目錄 由冒號分隔。在最 一般情況下,它會包含由 分號隔開的兩個 目錄列表:

dirlist1; dirlist2 

如果LD被稱爲與任意數量-L出現的,如:

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

那麼搜索路徑排序爲:

  dirlist1 path1 . . . pathn dirlist2 LIBPATH 

當目錄列表不包含分號時,它是 解釋爲dirlist2。

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

請閱讀更多關於here

+0

只是爲了確認,LD_LIBRARY_PATH在所有-L選項之後是否被認爲是正確的? – Leonid 2010-10-05 16:28:21

+0

不,不是。它取決於它是否包含分號。如果不是,那麼它會在所有-L之後執行,否則在分號前首先列出,然後是所有-L選項,然後在分號後列出。我會更新我的答案,因爲在這個大文件中很難找到它。另請注意,這適用於Sun鏈接器,不適用於GNU的鏈接器。我不確定你正在使用哪一個。 – 2010-10-05 16:32:08