Mac OS X Xcode 库

Mac OS X Xcode 库

厌倦了必须在每个项目中更改我的标题和库搜索路径才能链接来自 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

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

  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 目录并在其中添加一个 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 项目中添加包含路径和库路径吗?”

您正在寻找“标题搜索路径”和“库搜索路径”。

使用顶部便捷的搜索字段来找到它们。

另外,请确保“显示”弹出窗口设置为“所有设置”。

如果将其设置为其他值之一,那么您不一定会看到您正在寻找的设置。

在此处输入图片描述

来源如何在XCode项目中添加包含路径和库路径


进一步阅读

相关内容