将系统头搜索路径添加到Xcode

Eon*_*nil 54 search xcode header system path

(发布此问题仅供参考,我会立即回答)

如何将标题搜索路径添加到Xcode?特别是当包含这种语法时:

include <myheader.h>
Run Code Online (Sandbox Code Playgroud)
  1. 全局添加路径到所有项目,如系统头.
  2. 仅将路径添加到特定项目.

Eon*_*nil 100

我们有两种选择.

  1. 在Xcode的首选项中查看Preferences-> Locations - >"Source Trees".此处添加的路径将是系统级路径,可供所有项目使用.

  2. HEADER_SEARCH_PATHS在项目信息的构建设置中设置参数.我"${SRCROOT}"在这里添加了没有递归.此设置适用于大多数项目.

关于第二选项:

Xcode使用具有GCC兼容命令集的Clang. GCC有一个选项-Idir,可以添加系统头搜索路径.此选项可通过HEADER_SEARCH_PATHSXcode项目构建设置访问.

但是,添加到此设置的路径字符串不应包含任何空格字符,因为该选项将按原样传递给shell命令.

但是,一些OS X用户(像我一样)可能会将他们的项目放在路径上,包括应该被转义的空白.你可以像/Users/my/work/a\ project\ with\ space手动输入一样逃避它.您也可以使用引号来转义它们以使用环境变量"${SRCROOT}".

或者只是.用来指示当前目录.我在Webkit的源代码中看到了这个技巧,但我不确定当前目录在构建时是否会设置为项目目录.

${SRCROOT}是Xcode预定义的值.这意味着源目录.您可以在参考文档中找到更多值.

PS.实际上你不必使用大括号{}.我得到了相同的结果$SRCROOT.如果您知道其中的差异,请告诉我.

  • 有或没有大括号的区别在于,使用大括号,路径可以包含空格. (5认同)
  • 另请注意,$ {SRCROOT}是包含.xcodeproj目录的目录,*not*Xcode放置源文件的目录(至少在我的Xcode 4.6.3上).为了得到我的来源,我不得不更深入一级. (2认同)
  • 爱你倒退行程 (2认同)

Pro*_*gle 12

跟进Eonil关于项目级别设置的答案.选中目标并选择"构建设置"选项卡后,"搜索路径"下的"页眉搜索路径"下可能没有列表.在这种情况下,您可以从搜索栏中的"基本"更改为"全部",页眉搜索路径将显示在"搜索路径"部分中.