加载 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
.
我在我的 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
.