2011-08-19 80 views
4

我知道如何使用-Ldir選項添加到GNU ld的庫搜索路徑並廣泛使用它。但就閱讀gccld的手冊而言,我可以說,沒有辦法添加到庫搜索路徑列表的末端添加到gnu ld庫搜索路徑的* end *

-L選項添加到開頭,之後它搜索默認系統庫路徑。但是我想添加一個look-here-if-you-can-t-find-it-any-any-other-else路徑。有沒有辦法用ld來做到這一點?

我可以想象一個提取所有標準庫dirs(使用-print-search-dirs)的hacky-crap解決方案,並將它們按照我所希望的順序添加到-L搜索dirs列表中,並將它們隱含的重複項默認搜索路徑...

必須是一個更好的辦法...

回答

0

我不認爲你可以做你想做什麼。但是,如果您有什麼強制所有符號的你,包括疲弱與以下ld標誌庫:

-weak_library path_to_library 
      This is the same as listing a file name path to a library on 
      the link line except that it forces the library and all ref- 
      erences to it to be marked as weak imports. 

這樣一來,如果其他庫包括具有更強的符號,他們將覆蓋符號在look-here-if-you-can't-find-it-anywhwere-else.so。如果在LD_LIBRARY_PATH中提到的庫中沒有定義更強的符號,則將使用look-here-if-you-can't-find-it-anywhwere-else.so中的弱符號。

+0

現在,如果我只記得觸發這個問題的特定上下文...... –

+0

哈。尼斯... =) – sholsapp

0

/etc/ld.so.conf文件具有系統範圍的目錄路徑列表,其中在編譯時搜索庫,換行符以這種文件的條目順序排列。

修改該文件後,您必須運行ldconfig(以root身份),以便新設置變爲活動狀態。

+0

這聽起來非常** **特定於Linux。不過,它可能適用於特定的環境。 –