【问题标题】:Where is the Xcode setting for the project's own header files?项目自己的头文件的 Xcode 设置在哪里?
【发布时间】:2015-01-13 17:15:02
【问题描述】:

我想确切了解 Xcode 如何搜索属于项目的头文件(不是系统或库头文件),但我在构建设置中找不到对项目目录的任何引用。 Header Search Paths 设置只有一个系统路径。项目搜索路径在哪里以及如何控制?

我问是因为我想开始将文件分成文件夹(不仅仅是组),并且我想确保这不会导致包含问题。它似乎工作正常,但我不知道 Xcode 是如何做到的。它比简单的搜索路径更复杂。

例如,如果我有两个同名的标题,一个在一个组中(具有相应的文件夹),一个在顶层,如下所示:

Thing.h (1)
顶部.cc
Group1/Thing.h (2)
Group1/Inner.cc

Top.cc 要得到 (1) 和 (2),必须说 #include "Thing.h"#include "Group1/Thing.h"

对于Inner.cc 做同样的事情,它必须说#include "../Thing.h"#include "Thing.h"

很好,但是设置在哪里?什么是编译器标志?没看到。

(我意识到这种类型的嵌套在 Objective-C 中用处不大,因为您不能将类放在命名空间中,但我想将它用于我的 C++ 代码。)

【问题讨论】:

  • 经验法则是,如果您在项目源文件层次结构中的任何位置添加标头,那么 Xcode 将在编译时找到它 - 我认为它实际上只是为每个目录添加了 -I包含一个或多个头文件的项目。
  • 我确实查看了构建日志中的命令行。我没有看到那样的东西。也许这个问题更多的是关于clang。
  • 这很奇怪 - 如果我查看我的一个 Xcode 项目的 CompileC 命令行,我会看到项目中相关目录的大量 -I 开关。
  • 我有一些 -I 标志,但不是投影目录。有些是二进制 .hmap 文件。我想我现在只相信魔法。
  • 哦——这就解释了——你使用的是预编译的头文件。

标签: xcode xcode6 header-files xcode6.1


【解决方案1】:

请参阅构建设置参考文档中的Header-Map Build Settings

引用:

标题映射(也称为“标题映射”)是 Xcode 用于编译目标中使用的标题位置的文件。这些文件使用后缀 .hmap。 Xcode 通过 -I 参数将它放在一起的头映射传递给基于 C 的编译器。

我想设置 HEADERMAP_INCLUDES_PROJECT_HEADERS 就是你要找的。​​p>

【讨论】:

    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多