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

时间:2010-08-06 22:22:07

标签: xcode search path header system

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

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

include <myheader.h>
  1. 将路径全局添加到所有项目,例如系统标题。
  2. 仅向特定项目添加路径。

4 个答案:

答案 0 :(得分:97)

我们有两种选择。

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

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

  3. 关于第二个选项:

    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选项添加文件夹时,标题会自动被选中。