【问题标题】:XCode include pathsXCode 包含路径
【发布时间】:2010-11-20 18:52:13
【问题描述】:

我在让 XCode 处理我正在使用或希望使用的特定文件结构时遇到问题。

我有一组格式如下的文件...

图书馆 标头 图书馆 包1 Header1.h Header2.h 标头N.h 包2 Header1.h Header2.h 标头N.h 包N Header1.h Header2.h 标头N.h 资源 包1 源1.m 源2.m 来源N.m 包2 源1.m 源2.m 来源N.m 包3 源1.m 源2.m 来源N.m

我想要的这个库之外的代码的包含模型是......

#import "Library/Package/Header.h"

我想将 XCode 指向 Library/Headers 而不是内部文件夹。当我将此树添加到项目时,XCode 似乎使树中每个节点的隐含包含路径。

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

#import "Header.h"

而不是...

#import "Library/Package/Header.h"

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

任何帮助将不胜感激。

谢谢, -罗马

【问题讨论】:

    标签: xcode include path


    【解决方案1】:

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

    【讨论】:

    • 我明白了。当我同时创作库和应用程序时,那真是太可惜了。我想我总是可以把它分解成自己的项目。我尝试在同一个项目中创建一个库目标,但这也不会改变隐式路径。
    • 我发现有一种方法可以在您的项目中添加标题以便于编辑,但项目无法找到它们。只需将标题导入为文件夹引用(xcode 中的蓝色而不是黄色)。
    • Roman,我之前已经找到了这个确切的解决方案,直到您在 3 年前提到它时才忘记它。 stackoverflow 的心理圈子就完成了:)
    【解决方案2】:

    您遇到了 Xcode 构建平面标题图的行为。您可以通过添加构建设置来禁用它:

    HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=NO
    

    到您的项目设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-09
      • 2015-10-05
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多