在64位iOS上运行具有arm64架构的Wax

我被这个问题困扰了很多天。

Wax (https://github.com/probablycorey/wax) 只支持 armv7 和 armv7s 架构,但我的项目使用的是 arm64 架构。

错误信息是“Error opening wax scripts: loading wax stdlib: bad header in precompiled chunk”。

所以我想问题在 wax_stdlib.h 文件中。然而,这个文件是标准库文档中 lua 脚本的预编译结果,我不知道如何在64位中预编译 lua 脚本。

我该如何解决它?

点赞
用户2530223
用户2530223

因为你的项目使用了 arm64 架构,而 wax_stdlib.h 是以 32 位编译的…

所以,你只需要预编译 wax stdlib 以 64 位编译。

首先,你需要下载 lua 源代码,进入 src 目录,并以 64 位编译和安装。

然后你需要修改 luac.lua 文件

-- 64 b = string.sub(b, 1, x - 6 - 4).."\0"..string.sub(b, y + 2, y + 5) -- WTF does this do?

-- 32 -- b = string.sub(b, 1, x - 6).."\0"..string.sub(b, y + 2, y + 5) -- WTF does this do?

-- 64 assert(f:write(string.rep("\0", 3 * 8)))

-- 32 --assert(f:write(string.rep("\0", 12)))

然后运行 compile-stdlib.sh…

如果你按照上述方法操作,可以正常工作,但我建议你不要在 64 位架构中使用 wax,因为它不支持 64 位架构,你将遇到更多的问题。

2014-11-19 01:47:51
用户3987733
用户3987733

这里有一个针对 ARM64(和 x64)更新的 wax 分支 - 不确定它被测试的程度如何,但它可能会有用。

https://github.com/felipejfc/wax_x86-64

2015-02-06 00:54:08
用户765605
用户765605

使用 JSPatch 可能是一个不错的选择。

2015-06-28 07:32:15