Mac OS X Xcode 库

Fra*_*era 6 xcode

厌倦了必须在每个项目中更改我的标题和库搜索路径才能从 homebrew/usr/local/lib/usr/local/include.

有没有办法让 Xcode 默认识别这两个搜索路径?ld声明它默认使用这些搜索路径,但 Xcode 似乎没有。

另外,有没有办法将我的库添加/usr/local/lib到这个对话框中而不必选择添加其他?

添加库对话框

Fra*_*era 5

如果要添加在所有项目中持续存在的默认包含和搜索路径,则需要使用:

对于包含路径:

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
Run Code Online (Sandbox Code Playgroud)

对于库路径:

LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

为了使 OS X 中的 Xcode 和其他 GUI 应用程序(在 10.10 上测试)能够访问这些环境变量,您需要使用以下命令设置变量:

/bin/launchctl setenv LIBRARY_PATH /usr/local/lib
/bin/launchctl setenv CPATH /usr/local/include
Run Code Online (Sandbox Code Playgroud)

但这些都不是永久的。为了在重新启动时保留这些变量,您需要创建一个启动脚本。请参阅此页面的示例。

这是我的个人 applescript 文件,我已将其保存为 iCloud 中的应用程序(因此它可以重新格式化),并在系统首选项 -> 用户和组 -> 登录项中设置为启动项。

set ENV_LIBRARY_PATH to "/bin/launchctl setenv LIBRARY_PATH /usr/local/lib;"
set ENV_CPATH to "/bin/launchctl setenv CPATH /usr/local/include;"
do shell script ENV_LIBRARY_PATH & ENV_CPATH
Run Code Online (Sandbox Code Playgroud)

至于将它们添加到对话框中,我发现有两种方法:

  1. 快速而肮脏的方法:sudo ln -s /usr/local/lib/ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib

    这会将 /usr/local/lib 中的所有 lib 文件添加到对话框中同一 OS X 10.10“文件夹”下的对话框中。

  2. 第二种方法涉及创建您自己的 .sdk 目录 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs,其中包含 usr 子目录,然后将 SDKSettings.plist 从您的 .sdk 目录复制 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/SDKSettings.plist 到您的 .sdk 目录,使用 Xcode 对其进行编辑,并符号链接您的 /usr/local/bin、/usr/local/将 /usr/local/lib 包含到您的 mydir.sdk/usr/ 目录中。