我在使用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)
我似乎无法找到一种方法来拒绝不合格的表格.
任何帮助,将不胜感激.
谢谢,罗马
你正在遇到Xcode的行为,它构建了一个flat-headermap.您可以通过添加构建设置来禁用此功能:
HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=NO
Run Code Online (Sandbox Code Playgroud)
到你的项目设置.
如果您在项目的文件中包含标头,那么 XCode 将始终在没有路径限定的情况下找到它们,正如您所发现的。最好的解决方案是从项目中删除标头,并在项目设置中指定“库/标头”作为标头搜索路径。标头不会显示在您的项目中,但 XCode 在编译时也不会隐式找到它们;客户端代码必须指定“库/标头”的完整路径才能到达所需的头文件。
| 归档时间: |
|
| 查看次数: |
15699 次 |
| 最近记录: |