iOS的交叉编译!需要哪些条件?

3
我应该在我的iPhone项目中使用Podofo库来处理PDF。Podofo是一个用'C'编写的库,允许您操作PDF文件。现在,这个Podofo已经有一些其他依赖项,比如..

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

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

我看到有一种方法,可以直接将C源文件添加到我的项目中并使用它。但是,我仍然有一些关于交叉编译+静态库的问题。

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

1个回答

6
并没有所有库都有特定的步骤清单。对于PoDoFo的设置,您需要与其他库不同,只需坐下来做即可。
最方便的方法(用于使用库)可能涉及创建一个Xcode项目以构建框架。对于iOS而言,这相当简单,因为在该平台上可以仅静态链接到第三方库。因此,主要是设置一个构建框架的项目,添加相关文件和编译器/链接器标记,并根据需要设置框架的头文件可见性。
对于其他库,您可能可以更改CFLAGS/CPPFLAGS/CXXFLAGS/LDFLAGS并从命令行构建静态库。这样做不太方便,但最终产生的结果大致相同。框架只是稍微容易处理一些。同样,您必须针对每个库进行评估,决定最佳选项并按照该方式执行。
此外,关于PoDoFo的警告信息:它是根据LGPL许可证发布的,这意味着如果在iOS上使用它将会违反许可证。通过对该库进行静态链接,您将会创建一个基于原始软件的衍生作品,这意味着您的软件也必须遵守LGPL许可证。
请注意:我不是律师,但我花了很多时间阅读各种开源许可证。有关开源许可证的实际法律帮助,请咨询律师。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接