其中是项目的Xcode设置';谁有自己的头文件?

其中是项目的Xcode设置';谁有自己的头文件?,xcode,xcode6,header-files,xcode6.1,Xcode,Xcode6,Header Files,Xcode6.1,我想确切地了解Xcode是如何搜索作为项目一部分的头文件的(不是系统或库头文件),但在构建设置中找不到对项目目录的任何引用。设置标题搜索路径只有一个系统路径。项目搜索路径在何处以及如何控制 我问这个问题是因为我想开始将文件分为文件夹(而不仅仅是组),我想确保这不会导致包含问题。它似乎工作正常,但我不知道Xcode是如何工作的。它比简单的搜索路径更复杂 例如,如果我有两个同名的标题,一个在组中(带有相应的文件夹),另一个在顶层,如下所示: Thing.h(1) Top.cc Group1/Thin

我想确切地了解Xcode是如何搜索作为项目一部分的头文件的(不是系统或库头文件),但在构建设置中找不到对项目目录的任何引用。设置标题搜索路径只有一个系统路径。项目搜索路径在何处以及如何控制

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

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

Thing.h(1)
Top.cc
Group1/Thing.h(2)
Group1/Inner.cc

对于
Top.cc
要获得(1)和(2),它必须说
#包含“Thing.h”
#包含“Group1/Thing.h”

对于
internal.cc
,它必须说
#include./Thing.h
#include“Thing.h”

那很好,但是背景在哪里?编译器标志是什么?我看不出来

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

< P>参见生成设置参考文档。

引述:

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


我想设置
HEADERMAP\u INCLUDES\u PROJECT\u HEADERS
就是你要找的。

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