如何为iOS和&编译libffi?苹果系统?

时间:2015-08-22 12:43:53

标签: ios xcode libffi

我试图在我的某个项目中使用libffi,但我似乎无法为iOS(或macOS)编译。以下是我在构建iOS模拟器时遇到的各种错误之一:

bash: src/arm/gentramp.sh: No such file or directory

更新1:由于问题仍未得到答复,我还决定在官方存储库中打开issue

更新2:问题已得到解答,问题已经解决!

4 个答案:

答案 0 :(得分:2)

如果您检查存储库,则会在this commit中看到您需要的文件已被删除。您可以找到此文件的最新版本here

答案 1 :(得分:1)

需要更新

generate-darwin-source-and-headers.py和libffi.xcodeproj以包含所有当前相关的源文件。

不再需要gentramp.sh脚本,并且当前的上游xcodeproj不是最新的编辑设置,而是包含在iOS上的64位源文件。可以在https://github.com/ksjogo/libffi

找到修补后的叉子

答案 2 :(得分:0)

请确保您遵循TBD或git项目上发布的安装libffi说明:https://github.com/libffi/libffi

这里有一些主要亮点:

首先,您必须为您的特定配置分配 系统。 转到您要构建libffi的目录并运行 "配置"程序在libffi源的根目录中找到 分配

如果您直接从版本控制构建libffi,请配置won 还存在;首先运行./autogen.sh

您可能想要告诉configure安装libffi库的位置和 头文件。为此,请使用--prefix配置开关。 Libffi 默认情况下将安装在/usr/local下。

如果要启用额外的运行时调试检查,请使用 --enable-debug配置交换机。 当程序死亡时,这很有用 使用libffi时神秘。

另一个有用的配置开关是--enable-purify-safety。用这个 将添加一些额外的代码,这将抑制您的某些警告 与libffi一起使用Purify。 使用时仅使用此开关 净化,因为它会减慢库的速度

对于iOS版本,' libffi.xcodeproj' Xcode项目可用。

Configure还有许多其他选项。使用" configure --help"看到他们。

配置完成后,输入" make"。 请注意,您必须使用 GNU make。你可以从ftp.gnu.org:/pub/gnu/make获取GNU make。

要确保libffi按宣传方式运行,请键入" make check"。 这将要求您安装DejaGNU

要安装库和标题文件,请键入" make install"。

或者,尝试将以下git项目之一合并到项目中,以包含丢失的文件。 请确保在合并之前文件不会过时。

1 https://github.com/pandamonia/libffi-iOS

2 https://github.com/influitive/libffi-iOS

3 https://github.com/landonf/libffi-ios

答案 3 :(得分:0)

  1. sh autogen.sh

  2. python generate-darwin-source-and-headers.py --only-ios

  3. 打开libffi.xcodeproj

  4. 选择方案 libffi-iOS 和设备 Generic iOS Device

  5. 点击“产品 - 构建”

    如果成功,您会在侧栏中看到“Product/libffi.a”,您可以右键单击它以在finder中获取lib。