【问题标题】:Wrong architecture error when loading lgi加载 lgi 时出现错误的架构错误
【发布时间】:2018-04-29 10:53:53
【问题描述】:

我在我的 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 抱怨架构错误?

【问题讨论】:

    标签: lua architecture require luarocks zerobrane


    【解决方案1】:

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

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

    但这没有任何效果。

    如果您将它与 Lua 5.3 解释器一起使用,则需要设置 path.lua53 ;试试path.lua53 = "/usr/local/bin/lua"(假设/usr/local/bin/lua 是Lua 5.3 解释器)。有关详细信息/示例,请参阅文档中的 Interpreter Path 部分。

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

    【讨论】:

    • 很棒的产品和强大的支持。谢谢保罗!一个简短的说明:High Sierra 是 Apple 将“不妥协”支持 32 位的最后一个操作系统。在编译 Lua 时,我不认为我明确地将它标记为以 64 位编译,但我可能是错的。如果我是正确的,将 Lua 的 Mac 版本设为 64 位可能是合理的,即使只是为了避免这些边缘情况。 FWIW。
    • 好点。作为下一个组件升级的一部分,我肯定会对此进行研究,因为无论如何都需要重新编译二进制文件。
    猜你喜欢
    • 2015-06-20
    • 2016-09-11
    • 2013-03-31
    • 1970-01-01
    • 2018-11-07
    • 2017-09-19
    • 2017-10-07
    • 2015-11-28
    • 1970-01-01
    相关资源
    最近更新 更多