将系统标题searchpath添加到Xcode
(发布这个问题作为参考,我会立即回答)
如何添加标题searchpath到Xcode? 特别是当包含这个语法时:
include <myheader.h>
- 全局添加path到所有项目,如系统标题。
- 仅将path添加到特定项目。
我们有两个select。
-
查看Xcode首选项中的首选项 – >位置 – >“源代码树”。 这里添加的path将是一个系统级别的path,可用于所有项目。
-
在项目信息的构build设置中设置
HEADER_SEARCH_PATHS
参数。 我在这里添加了"${SRCROOT}"
而没有recursion。 这个设置适用于大多数项目。
关于第二个选项:
Xcode使用具有GCC兼容命令集的Clang。 GCC有一个选项-Idir
,它添加了系统标题searchpath。 这个选项可以通过Xcode项目构build设置中的HEADER_SEARCH_PATHS
访问。
但是,添加到此设置的pathstring不应包含任何空格字符,因为该选项将按原样传递给shell命令。
但是,一些OS X用户(如我)可能会把他们的项目放在包括应该逃脱的空白的path上。 如果您手动input,可以像/Users/my/work/a\ project\ with\ space
一样转义。 您也可以使用引号将它们转义为使用环境variables(如"${SRCROOT}"
。
或者只是使用.
指示当前目录。 我在Webkit的源代码中看到了这个技巧,但是我不确定在构build它时当前目录将被设置为项目目录。
${SRCROOT}
是Xcode预定义的值。 这意味着源目录。 您可以在参考文档中find更多的值。
PS。 其实你不必使用大括号{}
。 我得到与$SRCROOT
相同的结果。 如果你知道不同之处,请告诉我。
跟随Eonil的回答与项目水平设置有关。 在选定目标并select“生成设置”选项卡的情况下,标题searchpath的searchpath下可能没有列表。 在这种情况下,您可以从search栏的“基本”更改为“全部”,标题searchpath将显示在searchpath部分。
虽然这个问题有一个答案,但是当我遇到同样的问题时,我的解决方法是不同的。 当我使用“ Create Folder references
”选项复制文件夹时遇到此问题; 那么上面的解决scheme将文件夹添加到build_path工作。 但是,当使用Create groups for any added folder
选项Create groups for any added folder
,标题被自动拾取。
使用引号只是为了完整性。
"/Users/my/work/a project with space"/**
如果不是recursion的,删除/**