【发布时间】: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