XCode包含路径

时间:2009-08-18 22:54:14

标签: xcode include path

我在使用XCode来处理我正在使用或我想使用的特定文件结构时遇到了问题。

我有一组以下形式的文件......


Library
   Headers
      Library
         Package1
            Header1.h
            Header2.h
            HeaderN.h 
         Package2
            Header1.h
            Header2.h
            HeaderN.h 
         PackageN
            Header1.h
            Header2.h
            HeaderN.h 
   Source
      Package1
         Source1.m
         Source2.m
         SourceN.m 
      Package2
         Source1.m
         Source2.m
         SourceN.m 
      Package3
         Source1.m
         Source2.m
         SourceN.m 

我希望此库以外的代码包含的模型是......

#import "Library/Package/Header.h"

我想将XCode指向Library / Headers但不指向内部文件夹。当我将这个树添加到项目中时,XCode似乎会为树中的每个节点创建隐式包含路径。

项目中的客户端代码但在此树之外可以执行此操作...

#import "Header.h"

而不是......

#import "Library/Package/Header.h"

我似乎找不到办法拒绝不合格的表格。

任何帮助都将不胜感激。

谢谢, -Roman

2 个答案:

答案 0 :(得分:6)

你正在遇到Xcode的行为,它构建了一个flat-headermap。您可以通过添加构建设置来禁用此功能:

HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=NO

到您的项目设置。

答案 1 :(得分:1)

如果您在项目中的文件中包含标题,那么XCode将始终在没有路径限定的情况下找到它们,正如您所发现的那样。最佳解决方案是从项目中删除标题,并在项目设置中将“库/标题”指定为标题搜索路径。标题不会显示在您的项目中,但是编译时XCode也不会隐式找到它们;客户端代码必须指定“库/标头”的完整路径才能到达他们想要的头文件。