在mac os x上使/ usr/local/lib成为ld的默认库搜索路径?

问题描述:

我已经安装了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://*.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

要使用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