【问题标题】:Adding system header search path to Xcode将系统头搜索路径添加到 Xcode
【发布时间】:2011-03-26 14:05:09
【问题描述】:

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

如何在 Xcode 中添加标题搜索路径? 尤其是在包含此语法时:

include <myheader.h>
  1. 为所有项目全局添加路径,如系统头文件。
  2. 仅将路径添加到特定项目。

【问题讨论】:

    标签: xcode search path header system


    【解决方案1】:

    我们有两种选择。

    1. 在 Xcode 的首选项中查看 Preferences->Locations->“Custom Paths”。如果您使用该名称保存了自定义路径,则此处添加的路径将是一个变量,您可以将其添加到项目构建设置中的“标头搜索路径”中作为“$cppheaders”。

    2. 在项目信息的构建设置中设置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 相同的结果。如果您知道其中的区别,请告诉我。

    【讨论】:

    • 还要注意 ${SRCROOT} 是包含 .xcodeproj 目录的目录,不是 Xcode 放置源文件的目录(至少在我的 Xcode 4.6.3 上) .为了找到我的源头,我必须更深入一层。
    • 带或不带大括号的区别在于,带大括号的路径可以包含空格。
    • 爱你的反斜杠技巧
    • 是“先做第 1 步,再做第 2 步”,还是“做选项 1 或选项 2”?
    • @jameshfisher 这些是选项。不是步骤。你可以选择一个你想要的。如果您不确定该选择什么,请转到选项 #2。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      为了完整性而使用引号。

      "/Users/my/work/a project with space"/**

      如果不是递归的,删除/**

      【讨论】:

      • 另外,如上所示,请务必对变量使用大括号,而不是圆括号。后者似乎会导致带有空格的项目出现解析问题。
      【解决方案4】:

      虽然这个问题有答案,但当我遇到同样的问题时,我的解决方法有所不同。当我使用选项 Create Folder references 复制文件夹时遇到了这个问题;然后将文件夹添加到 build_path 的上述解决方案起作用了。 但是当使用Create groups for any added folder 选项添加文件夹时,会自动拾取标题。

      【讨论】:

        猜你喜欢
        • 2018-12-28
        • 1970-01-01
        • 1970-01-01
        • 2010-11-17
        • 2011-09-13
        • 2011-03-26
        • 2013-12-08
        • 1970-01-01
        • 2020-05-03
        相关资源
        最近更新 更多