我正在将 Lua 脚本编译成 MacOS Catalina 上的二进制文件。
luac -s -o bin/my-binary.luac src/my-code.lua"
但是,使用已编译脚本的应用程序运行 32 位版本的 Lua,无法读取 64 位已编译 Lua 脚本的字节码。(错误消息:预编译块中的错误标头)。
我可以以某种方式(交叉)将当前 MacOS 上的 Lua 脚本编译为 32 位二进制文件吗?我的替代方案是使用 Docker 进行编译,但也许还有更简单的方法。
我正在将 Lua 脚本编译成 MacOS Catalina 上的二进制文件。
luac -s -o bin/my-binary.luac src/my-code.lua"
但是,使用已编译脚本的应用程序运行 32 位版本的 Lua,无法读取 64 位已编译 Lua 脚本的字节码。(错误消息:预编译块中的错误标头)。
我可以以某种方式(交叉)将当前 MacOS 上的 Lua 脚本编译为 32 位二进制文件吗?我的替代方案是使用 Docker 进行编译,但也许还有更简单的方法。
我没有看到交叉编译或更改位数的任何选项,但您可以调整 Lua 代码以生成您需要的代码。这是Lua 5.1 的邮件列表线程,建议使用#define LUAC_STR_SIZE_TYPE int
.
如果这不起作用,您可以更改ldump.c
以生成 32 位兼容代码。源代码有以下注释(5.4)All high-level dumps go through dumpVector; you can change it to change the endianness of the result
:. 您可以通过更改 、 和其他几个地方的处理来更新它以更改DIBS
位数dumpSize
。