4

我正在尝试在我的一个项目中使用libffi,但我似乎无法为 iOS(或 macOS,就此而言)进行编译。这是我在为 iOS 模拟器构建时遇到的各种错误之一:

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

更新 1:由于问题仍未得到解答,我决定在官方存储库中也打开一个问题

更新2:问题已得到解答,问题已关闭!

4

4 回答 4

2

如果您检查存储库,您将看到您需要的文件已在此提交中删除。您可以在此处找到此文件的最新版本。

于 2016-05-04T19:07:24.173 回答
1

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

不再需要 gentramp.sh 脚本,当前上游 xcodeproj 的编译设置也不是最新的,并且在 iOS 上包含 64 位源文件。可以在https://github.com/ksjogo/libffi找到一个打补丁的分叉

于 2016-07-13T10:01:59.907 回答
1
  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。

于 2021-07-01T02:09:35.027 回答
0

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

这里有一些主要亮点:

首先,您必须为您的特定系统配置分发。转到您希望在其中构建 libffi 的目录并运行在 libffi 源代码分发的根目录中找到的“配置”程序。

如果你直接从版本控制构建 libffi,configure 将不存在;先跑./autogen.sh

您可能想告诉 configure 在哪里安装 libffi 库和头文件。为此,请使用--prefix配置开关。Libffi 会/usr/local默认安装在下面。

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

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

对于 iOS 构建,“ libffi.xcodeproj” Xcode 项目可用。

配置有许多其他选项。使用“ configure --help”查看所有内容。

配置完成后,键入“ make”。请注意,您必须使用 GNU make。 你可以 ftp GNU make from ftp.gnu.org:/pub/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

于 2016-04-29T12:02:44.890 回答