3

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

freetype2、fontconfig 等都可以通过在 Mac OSX 上安装Macports来满足。

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

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

这真的是一个非常复杂的过程吗?我知道什么是交叉编译。但我不知道使用 XCode 或任何其他工具执行此操作的确切步骤,以便编译后的构建可以在 iPhone 项目中使用。任何人都可以花一些时间和精力,列出所有可能的步骤和指针,以便像我这样的人将来可以作为参考。

4

1 回答 1

6

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

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

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

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

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

于 2012-08-14T07:27:39.943 回答