【问题标题】:is there any third party tool to create static library for armv6/armv7?是否有任何第三方工具可以为 armv6/armv7 创建静态库?
【发布时间】:2011-12-02 17:38:49
【问题描述】:

我在C/C++ 中有一些源代码。我必须制作静态库才能在我的 iPhone 应用程序中使用。是否有任何第三方工具可以为 armv6/armv7 创建静态库?

【问题讨论】:

  • 我正在做同样的事情,只需在 .mm 文件中编写 XCODE 中的 c/c++ 代码并获取库,到目前为止它工作正常......:/
  • 请告诉我创建 .a 文件的步骤?

标签: iphone c++ ios arm static-libraries


【解决方案1】:

此链接将帮助您在 xcode 中创建静态库 ...

http://www.icodeblog.com/2011/04/07/creating-static-libraries-for-ios/

只需将 .m 文件重命名为 .mm 文件并在其中写入您的 c/c++ 实现代码....

先尝试一个小功能,如果它适用,您可以在其中实现所有类...

请确保当您尝试在 XCODE 中的任何其他项目中使用此库时,仅对所有文件使用 .mm 扩展名,即使是 appdelegate...希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我会推荐iOS Universal Framework。我已经用它来创建一些我链接到我的应用程序项目的静态框架。它就像一个魅力,而且非常容易设置 - 无需自己编写复杂的 shell 脚本。

    它为新的目标项目类型添加了一个模板,然后您可以像普通的 Apple 框架一样导入和使用该模板。我建议设置一个包含框架项目和应用程序项目的工作区,这样 Xcode 会自动处理依赖项。

    【讨论】:

    • 我按照“iOS 通用框架”的步骤进行操作。但它创建了一个类似 file.framework 的框架。它的大小也太大了,超过 58MB。有没有办法创建 .a 文件?
    • 抱歉,这将创建 .framework 文件。您是否有理由寻找第三方工具,而不仅仅是使用内置的 Cocoa Touch 静态库项目模板?这将创建一个构建 .a 文件的目标。
    • 我正在使用第三方 api (PJSIP)。我想在 PJSIP 中集成 x API。 PJSIP 在 C 中。x API 在 C++ 中。如果我想集成它们,我必须使用 x API 创建静态库。然后我将在 PJSIP 中使用该静态库。
    • Objective-C++ (.mm) 文件对于 C 和 C++ 代码应该足够了吗?您是否尝试过使用标准静态库模板?除此之外,我不知道我害怕。
    【解决方案3】:

    通常,您不希望链接到使用另一个编译器而不是用于编译该库的编译器生成的静态库。静态库在编译器之间并不是真正可移植的,因为 C/C++ 标准没有涵盖静态库格式。由于名称修改和其他格式差异,您可能根本无法链接,或者更糟糕的是,它似乎可以工作但会注入错误。更糟糕的是,如果您在 lib 中使用编译器中的标准库,当有人链接到您的 lib 并且他们不使用标准库的相同版本时,将会产生可怕的名称冲突!

    使用您希望他们使用的编译器发布库。如果您必须使用标准库,那么您必须确保它们具有与您相同的版本。真的,您应该让他们自己编译 lib 或为您支持的每个编译器预编译它。这很糟糕,但这就是今天的现实。

    【讨论】:

      猜你喜欢
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2022-01-16
      • 1970-01-01
      相关资源
      最近更新 更多