加载 lgi 时出现 Wrong architecture 错误

Wrong architecture error when loading lgi

我在我的 Mac Sierra OS 和 Luarocks 上安装了 Lua 5.3,它似乎工作正常。事实上,我已经安装了 lgi,当我 运行 它时,这个文件在终端上没有错误地工作:

local lgi = require'lgi'

但是,在选择了 5.3 解释器的 ZeroBrane 中,同一文件会产生以下错误:

/ZeroBraneStudio/bin/lua.app/Contents/MacOS/lua53: error loading module 'lgi.corelgilua51' from file '/usr/local/lib/lua/5.3/lgi/corelgilua51.so':
dlopen(/usr/local/lib/lua/5.3/lgi/corelgilua51.so, 6): no suitable image found.  Did find:
/usr/local/lib/lua/5.3/lgi/corelgilua51.so: mach-o, but wrong architecture
/usr/local/lib/lua/5.3/lgi/corelgilua51.so: mach-o, but wrong architecture
stack traceback:
    [C]: in ?
    [C]: in function 'require'
    /usr/local/share/lua/5.3/lgi/core.lua:14: in main chunk
    [C]: in function 'require'
    /usr/local/share/lua/5.3/lgi/init.lua:19: in main chunk
    [C]: in function 'require'
    /usr/local/share/lua/5.3/lgi.lua:19: in main chunk
    [C]: in function 'require'
    /Users/andrew/src/gstreamer/fun.lua:1: in main chunk
    [C]: in ?

我也试过使用安装的解释器:

path.lua = "/usr/local/bin/lua"

但这没有效果。

SO...有人有任何指示吗?为什么终端可以工作但 ZeroBrane 抱怨架构错误?

ZeroBrane Studio 附带的 lua53 二进制文件是 i386 可执行文件(32 位),但您使用的库可能是 64 位,因此出现有关错误架构的消息。

path.lua = "/usr/local/bin/lua"

but this had no effect.

如果您将它与 Lua 5.3 解释器一起使用,则需要改为设置 path.lua53;尝试 path.lua53 = "/usr/local/bin/lua"(假设 /usr/local/bin/lua 是 Lua 5.3 解释器)。请参阅 details/examples 文档中的 Interpreter Path 部分。

此外,这个文件名 (/usr/local/lib/lua/5.3/lgi/corelgilua51.so) 看起来很可疑,因为它混合了 5.3 和 51,但如果它在命令行中工作,那么当您设置时,它也应该在 IDE 中工作path.lua53.