我在使用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
答案 0 :(得分:6)
你正在遇到Xcode的行为,它构建了一个flat-headermap。您可以通过添加构建设置来禁用此功能:
HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=NO
到您的项目设置。
答案 1 :(得分:1)
如果您在项目中的文件中包含标题,那么XCode将始终在没有路径限定的情况下找到它们,正如您所发现的那样。最佳解决方案是从项目中删除标题,并在项目设置中将“库/标题”指定为标题搜索路径。标题不会显示在您的项目中,但是编译时XCode也不会隐式找到它们;客户端代码必须指定“库/标头”的完整路径才能到达他们想要的头文件。