2014-12-05 137 views
3

我已經安裝了XCode,但由於某些原因,在/ usr/local/lib目錄是不是包含在默認的庫搜索路徑:在mac os x上使/ usr/local/lib成爲ld的默認庫搜索路徑?

gcc -Xlinker -v 

給我:

@(#)PROGRAM:ld PROJECT:ld64-224.1 
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 armv6m armv7m armv7em 
Library search paths: 
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib 
Framework search paths: 
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/ 

這是不幸的,因爲/usr/local/lib是一個相當規範的安裝庫的位置,並且mac os x上沒有/etc/ld.so.conf + ldconfig修改默認庫搜索路徑。因此,如果不使用-L/usr/local/lib,則會導致鏈接器錯誤。除了設置環境變量DYLD_LIBRARY_PATH還有其他的非運行時選項嗎?

編輯:設置DYLD_LIBRARY_PATH env變量對我沒有幫助。我不得不設置LIBRARY_PATH env變量,而是能夠鏈接在/usr/local/lib下安裝的庫與gcc

是否有這個安裝XCode時的選項? (這是一個工作電腦,沒有安裝它自己)

+0

沒有選項時,我安裝的Xcode,我所看到的。此外,無論是'DYLD_LIBRARY_PATH'也不'LIBRARY_PATH'也不'LD_LIBRARY_PATH'所見[這裏](http://stackoverflow.com/questions/17889799/libraries-in-usr-local-lib-not-found)爲我工作。仍在尋找解決方案。 – 2015-03-11 04:14:35

+1

'gcc -Xlinker -v'給你什麼?我將此添加到我的'〜/ .bash_profile':'如果[-z 「$ {} LIBRARY_PATH」]#\ n 然後#\ n 出口LIBRARY_PATH = 「/ usr/lib中:在/ usr/local/lib目錄」 # \ n 別的#\ n 出口LIBRARY_PATH = 「LIBRARY_PATH:/ usr/lib中:在/ usr/local/lib目錄」 #\ n fi'(表示換行以'#\ N')。在此之後,'GCC -Xlinker -v'還列出了'在/ usr /本地/ lib'(打開新的終端窗口'.bash_profile'生效) – 2015-03-12 05:32:01

+0

'GCC -Xlinker -v @(#)計劃:LD項目:ld64-241。9 配置爲支持archs:用於ARMv6 ARMv7的armv7s arm64 I386 x86_64的x86_64h armv6m armv7m armv7em 庫搜索路徑: \t/usr/lib中 \t的/ usr /本地/ lib中 框架搜索路徑: \t /庫/框架/ \t /系統/資源庫/框架/ 用於建築x86_64的未定義符號: 「_main」,從引用: 隱含進入/啓動主可執行 LD:符號(S)沒有發現建築x86_64的 鐺:錯誤:連接命令失敗退出代碼1(使用-v查看調用)' – 2015-03-12 07:54:31

回答

3

要使用Xcode的臨時庫添加到項目中,我做了以下內容:

enter image description here

要添加一個臨時的include路徑到我的XCode庫搜索路徑我必須做到以下幾點:

enter image description here

如果你想添加默認​​你需要使用:

對於包含路徑:

CPATH 
C_INCLUDE_PATH 
CPLUS_INCLUDE_PATH 
OBJC_INCLUDE_PATH 

而對於庫的路徑:

LIBRARY_PATH 

爲了Xcode和其它GUI應用程序在OS X(上10.10測試),以便能夠訪問這些環境變量,你需要設置變量使用:

/bin/launchctl setenv LIBRARY_PATH /usr/local/lib 
/bin/launchctl setenv CPATH /usr/local/include 

但這些都不是永久的。爲了讓這些變量重新啓動,您需要創建一個啓動腳本。 See this page for an example.

+0

您的'gcc -Xlinker -v'列出了正確的庫搜索路徑,您是否在XCode中列出了'gcc - Xlinker -v'?或者我懷疑你的環境變量是正確設置的。對我而言,這就是所需要的。 – 2015-03-13 09:42:56

+0

現在它是否適用於不使用XCode的項目,即它是全局設置還是僅限於項目? (你還有你的env變量LIBRARY_PATH設置?) – 2015-03-13 09:50:53