我被这个问题困扰了很多天。
Wax(https://github.com/probablycorey/wax仅支持 armv7 和 armv7s 架构,但我的项目使用 arm64 架构。
错误消息是“打开蜡脚本时出错:加载蜡标准库:预编译块中的标头错误”。
所以我想问题出在wax_stdlib.h中。但是这个文件是 lua 脚本在 stdlib 文件中的预编译结果,我不知道如何在 64 位中预编译 lua 脚本。
我该如何解决?
我被这个问题困扰了很多天。
Wax(https://github.com/probablycorey/wax仅支持 armv7 和 armv7s 架构,但我的项目使用 arm64 架构。
错误消息是“打开蜡脚本时出错:加载蜡标准库:预编译块中的标头错误”。
所以我想问题出在wax_stdlib.h中。但是这个文件是 lua 脚本在 stdlib 文件中的预编译结果,我不知道如何在 64 位中预编译 lua 脚本。
我该如何解决?
因为您的项目使用 arm64 架构,并且wax_stdlib.h 是在 32 位中预编译的...
因此,您只需要在 64 位中预编译wax stdlib。
首先,你需要下载lua源代码,cd到src目录,制作成64位,然后安装
那么你应该修改 luac.lua 文件
-- 64 b = string.sub(b, 1, x - 6 - 4).."\0"..string.sub(b, y + 2, y + 5) -- WTF 这样做吗?
-- 32 -- b = string.sub(b, 1, x - 6).."\0"..string.sub(b, y + 2, y + 5) -- WTF 这样做吗?
-- 64 断言(f:write(string.rep("\0", 3 * 8)))
-- 32 --assert(f:write(string.rep("\0", 12)))
并运行 compile-stdlib.sh ...
如果你这样做,它可以工作,但我真的建议你不要在 64 位中使用蜡,因为它不支持 64 位..你会发现更多问题
改用JSPatch可能是一个好方法。
这里有一个带有 ARM64(和 x64)更新的蜡叉 - 目前尚不清楚它的测试效果如何,但它可能有用。