我试图在我的某个项目中使用libffi,但我似乎无法为iOS(或macOS)编译。以下是我在构建iOS模拟器时遇到的各种错误之一:
bash: src/arm/gentramp.sh: No such file or directory
更新1:由于问题仍未得到答复,我还决定在官方存储库中打开issue。
更新2:问题已得到解答,问题已经解决!
答案 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
答案 3 :(得分:0)
sh autogen.sh
python generate-darwin-source-and-headers.py --only-ios
打开libffi.xcodeproj
选择方案 libffi-iOS
和设备 Generic iOS Device
点击“产品 - 构建”
如果成功,您会在侧栏中看到“Product/libffi.a”,您可以右键单击它以在finder中获取lib。