【问题标题】:Xcode: use a static library in a framework?Xcode:在框架中使用静态库?
【发布时间】:2016-01-28 21:01:42
【问题描述】:

我有一个链接到两个静态库的框架。每个静态库都是一个目标,框架是一个目标。框架封装了静态库,框架的客户端只关心调用框架代码(反过来可能调用每个静态库的代码)。是否可以让框架包含所需的头文件和目标文件?当我构建时,我得到了臭名昭著的Include of non-module header inside framework module 错误。每个静态库都导出其标头,我已将标头作为公共标头添加到框架中。仍然没有运气(我认为有一个不需要这个的解决方案)。

【问题讨论】:

  • 模块图添加了吗?
  • @azimov 有什么解释吗?我见过它被引用,但从未见过有人说它是必需的。
  • 它是不能在框架内使用的桥接头的替代方案,更多细节clang.llvm.org/docs/Modules.html#module-maps。在我的例子中,我创建了一个框架,其中捆绑了几个用于 swift 项目的 C 库。
  • @azimov 我一直在阅读该链接。所以我的想法是我将为我的框架有一个自定义的modulemap,它为每个静态库声明一个模块并指向标题?另外,我不关心swift

标签: ios xcode macos static-libraries


【解决方案1】:

每个静态库都必须导出一个带有标题的module.modulemap 文件。与流行的看法相反,一旦完成,您需要在框架的 Headers 的 Public 部分添加一堆标题 构建阶段 以减轻错误。该过程在此处详细描述:http://blog.bjhomer.com/2015/05/defining-modules-for-custom-libraries.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 2018-07-31
    • 2014-05-05
    • 2014-05-07
    • 2014-11-16
    • 1970-01-01
    相关资源
    最近更新 更多