【问题标题】:Cross Compilation for iOS! what it takes at all?iOS的交叉编译!需要什么?
【发布时间】:2012-08-14 07:12:20
【问题描述】:

我应该使用Podofo 我的 iPhone 项目中的库,以处理 PDF。 Podofo 是一个用“C”语言编写的库,它允许您玩 PDF。现在这个 Podofo 确实已经对其他库或框架有一些其他依赖项,例如 ..

freetype2, 字体配置, 等等 只需在 Mac OSX 上安装 Macports 即可满足所有这些要求。

最初,我尝试使用 Podofo 网站上给出的命令从 Podofo 源文件创建一个静态库。它确实创建了一个库,但它不是为 arm 架构构建的。因此,当我尝试将该库包含在我的项目中时,它引发了错误。于是我开始寻找iOS交叉编译的步骤。我读过的帖子说,这个过程非常痛苦。

我看到了一个,我可以直接将 C-Source 文件添加到我的项目中并使用它。 但我仍然对交叉编译+静态库有一些疑问。

真的是a very complex process吗?我知道what is cross compilation。但我不知道使用 XCode 或any other tool 执行此操作的确切步骤,以便编译后的版本可以在 iPhone 项目中使用。任何人都可以花一些时间和精力,列出所有可能的步骤和指针,以便像我这样的人将来可以作为参考。

【问题讨论】:

    标签: iphone ios c ipad cross-compiling


    【解决方案1】:

    实际上并没有针对所有库的具体步骤列表。您必须以不同于其他方式的方式设置 PoDoFo,您只需坐下来进行操作即可。

    在最方便的情况下(即使用该库),该过程可能涉及为该库创建一个 Xcode 项目并将其设置为构建为一个框架。这对于 iOS 来说相当简单,因为您只能静态链接到平台上的第三方库。因此,它主要只是设置一个项目来构建一个框架,添加相关文件和编译器/链接器标志,并在必要时为框架设置标题的可见性。

    对于其他库,您可以更改 CFLAGS/CPPFLAGS/CXXFLAGS/LDFLAGS 并从命令行构建静态库。这不太方便,但最终会产生大致相同的结果。框架往往更容易使用。同样,您必须自行处理每个库,并确定最佳选择并这样做。

    另外,关于 PoDoFo 的警告说明:* 它已获得 LGPL 许可,这意味着您不能在 iOS 上使用它而不违反许可。通过静态链接到库,您将创建基于原始软件的衍生作品,这意味着您的软件也必须在 LGPL 下获得许可。

    * 请记住,我不是律师,但我花了很多时间阅读各种开源许可证。如需有关开源许可的实际法律帮助,请咨询律师。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-26
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      相关资源
      最近更新 更多