XCode包含路径

5 xcode path include

我在使用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"
Run Code Online (Sandbox Code Playgroud)

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

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

#import "Header.h"
Run Code Online (Sandbox Code Playgroud)

代替...

#import "Library/Package/Header.h"
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到一种方法来拒绝不合格的表格.

任何帮助,将不胜感激.

谢谢,罗马

ble*_*ter 6

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

HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=NO
Run Code Online (Sandbox Code Playgroud)

到你的项目设置.


fbr*_*eto 1

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

  • 我发现有一种方法可以在项目中包含标题以便于编辑,但项目却找不到它们。只需将标头导入为文件夹引用(xcode 中为蓝色而不是黄色)。 (4认同)