You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OSX环境下安装32位luasocket(适配32位core.so)

解决OSX下编译32位luasocket适配ET Legacy的问题

从你给出的错误信息来看:

Lua API: G_LuaStartVM error running lua script: error loading module 'socket.core’ from file 'lualibs/lib/lua/5.3/socket/core.so’: dlopen(lualibs/lib/lua/5.3/socket/core.so, 6): no suitable image found. Did find: lualibs/lib/lua/5.3/socket/core.so: mach-o, but wrong architecture /Applications/ET Legacy/lualibs/lib/lua/5.3/socket/core.so: mach-o, but wrong architecture

确实是架构不匹配导致的——ET Legacy运行在32位模式下,而默认LuaRocks在OSX上编译的luasocket是64位(x86_64)模块,所以加载失败。下面是具体的32位编译步骤:

步骤1:卸载现有64位luasocket

先把已经安装的不兼容版本移除:

luarocks remove luasocket

步骤2:设置32位编译环境变量

根据你使用的Shell类型,设置强制32位编译的参数:

  • 如果你用Bash/Zsh:
    export CFLAGS="-arch i386"
    export LDFLAGS="-arch i386"
    
  • 如果你用Tcsh:
    setenv CFLAGS "-arch i386"
    setenv LDFLAGS "-arch i386"
    

步骤3:编译安装32位luasocket

直接用LuaRocks安装,同时传递32位编译参数(显式指定更稳妥,避免环境变量失效):

luarocks install luasocket CFLAGS="-arch i386" LDFLAGS="-arch i386"

步骤4:验证编译结果

安装完成后,检查生成的core.so架构是否正确:

file lualibs/lib/lua/5.3/socket/core.so

如果输出显示mach-o, i386,说明32位编译成功,此时再放到ET Legacy环境中应该就能正常加载了。

额外注意事项

  • 确保你的OSX系统安装了支持i386架构的Xcode Command Line Tools,较新版本的OSX(比如Big Sur及以后)默认移除了i386编译支持,这种情况下你可能需要借助Rosetta 2来运行32位编译环境,或者降级到支持i386的旧版OSX。
  • 如果安装过程中遇到编译错误,检查是否缺少32位依赖库,或者尝试手动克隆luasocket源码,修改Makefile中的编译参数后再编译安装。

内容的提问来源于stack exchange,提问作者user7554663

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:03:32