【问题标题】:Bridging header finds file only with full path桥接头仅查找具有完整路径的文件
【发布时间】:2020-02-27 15:29:02
【问题描述】:

我有一个需要本地框架的项目。 该项目在框架文件夹中设置了框架。 新的本地框架也放置在其中。结果文件夹结构是这样的:

project
-- frameworks
---- theFramework.framework
------Headers
--------TheFramework.h
--------file1.h
--------file2.h
--------subfolder
----------Subfolder.h
----------Another.h

在 Bridging 标头中需要导入 TheFramework.h 和 Subfolder.h。

看起来是这样的:

#ifndef Bridging_Header_h
#define Bridging_Header_h

#import <TheFramework/TheFramework.h> //This one is working just fine
#import <subfolder/Subfolder.h> //This one fails with File not found

#endif /* Bridging_Header_h */

如果我将#import &lt;subfolder/Subfolder.h&gt; 更改为#import &lt;TheFramework/subfolder/Subfolder.h&gt;,那么似乎找到了该文件,因为它在尝试执行#import &lt;subfolder/Another.h&gt; 的Subfolder.h 中失败并再次失败并显示未找到

如果我将subfolder/Another.h 更改为TheFramework/subfolder/Another.h,那么它也可以在这里工作。

现在在我的现实生活场景中,我在不同的子文件夹中有 4 个头文件,所有这些文件都导入了大约 50 个其他文件,因此更改所有导入将......烦人。 此外,如果以后我们想更新到较新版本的框架,所有更改的导入都将丢失。

有人知道我该如何解决这个问题吗?通过让项目找到已经定义的导入,或者通过例如在某处定义一个值,使编译器理解 subfolder/file.h 等于 TheFramework/subfolder/file.h

谢谢!

【问题讨论】:

    标签: ios import bridging-header


    【解决方案1】:

    找到我必须添加的解决方案

    "$(SRCROOT)/frameworks/theFramework.framework/Headers"
    

    到我的目标用户标题搜索路径(目标 -> 构建设置 -> 用户标题搜索路径。 这似乎让编译器知道在哪里额外搜索包括子文件夹在内的头文件。

    【讨论】:

      猜你喜欢
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 2011-07-14
      相关资源
      最近更新 更多