在加载lgi时出现错误的错误体系结构

我在我的Mac Sierra OS上安装了Lua 5.3,并使用Luarocks,似乎工作正常。实际上,我已经安装了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"

但没有效果。

所以,有人有任何指针吗?为什么终端可以工作,但ZeroBrane会抱怨错误的体系结构?

点赞
用户1442917
用户1442917

lua53 binary that comes with ZeroBrane Studio is i386 executable (32bit), but the library you are using is probably 64bit, hence the message about the wrong architecture.

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

但是这没有效果。

如果您正在使用Lua 5.3解释器,您需要设置path.lua53; 尝试 path.lua53 = "/usr/local/bin/lua"(假设/usr/local/bin/lua是Lua 5.3解释器)。有关详细信息/示例,请参见文档中的解释器路径部分。

此外,此文件名(/usr/local/lib/lua/5.3/lgi/corelgilua51.so)看起来很可疑,因为它混合了5.3和51,但是如果在命令行上有效,则设置path.lua53时IDE也应该有效。

2017-11-16 02:42:16