厌倦了必须在每个项目中更改我的标题和库搜索路径才能链接来自 homebrew 的库/usr/local/lib
。/usr/local/include
有没有办法让 Xcode 默认识别这两个搜索路径?ld
声明它默认使用这些搜索路径,但 Xcode 似乎没有。
此外,有没有办法将我的库添加到/usr/local/lib
这个对话框中,而不必选择添加其他?
答案1
如果你想添加默认包含和搜索路径在所有项目中都存在,您需要使用:
对于包含路径:
CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
对于库路径:
LIBRARY_PATH
为了让 Xcode 和 OS X 中的其他 GUI 应用程序(在 10.10 上测试)能够访问这些环境变量,您需要使用以下命令设置变量:
/bin/launchctl setenv LIBRARY_PATH /usr/local/lib
/bin/launchctl setenv CPATH /usr/local/include
但这些并不是永久的。为了在重启后保留这些变量,您需要创建一个启动脚本。请参阅此页面的示例。
这是我的个人 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
至于将它们添加到对话框中,我发现有两种方法:
快速而肮脏的方法:
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“文件夹”下的对话框中。
第二种方法是创建您自己的 .sdk 目录并在其中添加一个 usr 子目录
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
,然后将 SDKSettings.plist 复制/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/SDKSettings.plist
到您的 .sdk 目录,使用 Xcode 对其进行编辑,并将您的 /usr/local/bin、/usr/local/include /usr/local/lib 符号链接到您的 mydir.sdk/usr/ 目录。
答案2
有没有办法让 Xcode 默认识别这两个搜索路径?
“您能告诉我如何在 XCode 项目中添加包含路径和库路径吗?”
您正在寻找“标题搜索路径”和“库搜索路径”。
使用顶部便捷的搜索字段来找到它们。
另外,请确保“显示”弹出窗口设置为“所有设置”。
如果将其设置为其他值之一,那么您不一定会看到您正在寻找的设置。