(发布此问题仅供参考,我会立即回答)
如何将标题搜索路径添加到Xcode? 特别是当包含这种语法时:
include <myheader.h>
答案 0 :(得分:97)
我们有两种选择。
在Xcode的首选项中查看Preferences-&gt; Locations-&gt;“Source Trees”。此处添加的路径将是系统级路径,可供所有项目使用。
在项目信息的构建设置中设置HEADER_SEARCH_PATHS
参数。我在这里添加了"${SRCROOT}"
而没有递归。此设置适用于大多数项目。
关于第二个选项:
Xcode使用具有GCC兼容命令集的Clang。
GCC has an option -Idir
添加系统标头搜索路径。此选项可通过Xcode项目构建设置中的HEADER_SEARCH_PATHS
访问。
但是,添加到此设置的路径字符串不应包含任何空格字符,因为该选项将按原样传递给shell命令。
但是,一些OS X用户(像我一样)可能会将他们的项目放在路径上,包括应该被转义的空白。如果您手动输入,可以像/Users/my/work/a\ project\ with\ space
一样转义它。您也可以使用引号来转义它们以使用"${SRCROOT}"
等环境变量。
或者只使用.
表示当前目录。我在Webkit的源代码中看到了这个技巧,但我不确定在构建它时当前目录是否会设置为项目目录。
${SRCROOT}
是Xcode的预定义值。这意味着源目录。您可以在Reference document中找到更多值。
PS。实际上你不必使用大括号{}
。我在$SRCROOT
得到了相同的结果。如果您知道其中的差异,请告诉我。
答案 1 :(得分:12)
跟进Eonil与项目级别设置相关的答案。选中目标并选择“构建设置”选项卡后,“搜索路径”下的“页眉搜索路径”下可能没有列表。在这种情况下,您可以从搜索栏中的“基本”更改为“全部”,页眉搜索路径将显示在“搜索路径”部分中。
答案 2 :(得分:4)
仅为完整性而使用引号。
"/Users/my/work/a project with space"/**
如果不是递归,请删除/**
答案 3 :(得分:3)
虽然这个问题有答案,但是当我遇到同样的问题时我解决了不同的问题。当我使用选项Create Folder references
复制文件夹时出现此问题;然后上面的解决方案将文件夹添加到build_path工作。
但是,当使用Create groups for any added folder
选项添加文件夹时,标题会自动被选中。