【问题标题】:Header file inclusion and visibility in static library iOS静态库 iOS 中的头文件包含和可见性
【发布时间】:2016-04-30 15:41:57
【问题描述】:

当从 iOS 项目中创建静态库时,在 Lib.a 文件中,它是否还捆绑了所有头文件。还是应该将公共标头将使用的所有头文件标记为私有标头,然后在构建静态库目标后将所有私有文件添加到 /usr/local/include 文件夹中?

【问题讨论】:

    标签: ios xcode7 static-libraries


    【解决方案1】:

    不,不会自动发生任何事情。静态库的正常流程如下:

    • 在您的项目中有一个静态库目标,因此您可以将项目包含在应用程序中并验证功能

    • 创建一个运行脚本和聚合目标,以便为 iOS 构建一个 .a,为模拟器构建一个,然后将它们“lipo”为一个 .a

    • 在运行脚本中,将 .a 和所有必要的 .h 文件复制到您创建的某个文件夹中

    文件夹就是您分发的内容。用户链接到 .a,并在他们的应用项目中设置搜索路径以指向包含您的 .a 的文件夹。

    【讨论】:

    • 如果我的带有静态库目标的 Xcode 项目依赖于许多其他静态库,我应该如何创建一个包含所有静态库的框架,以便最终用户不必手动添加这些库。目前,我正在使用 libtool 命令将所有 .a 文件组合成一个二进制文件。所有这些依赖库及其头文件都位于项目文件夹之外,系统中的某个位置。我是否必须将所有依赖的静态库标头包含到项目文件夹中并将它们标记为私有或项目标头?
    • 我只需要静态库来支持iPhone,不需要模拟器。所以,我没有使用 lipo 命令来创建通用框架。相反,我必须将多个静态库组合到一个框架文件中,为此我使用 libtool 命令。
    猜你喜欢
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多