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

LuaRocks安装LuaSocket失败求助:编译wsocket.c报错

解决Windows MinGW编译LuaSocket时ERROR_NOT_ENOUGH_MEMORY未声明的问题

我之前也碰到过类似MinGW编译Windows平台Lua库的坑,给你几个可行的解决思路:

1. 手动补充缺失的错误常量定义

这个错误是因为ERROR_NOT_ENOUGH_MEMORY是Windows系统特有的错误码,LuaSocket的wsocket.c文件里没显式引入相关定义,MinGW默认头文件也没自动导出它。你可以这么操作:

  • 找到LuaSocket源码里的src/wsocket.c文件
  • 在文件开头的include语句之后,添加一行:
    #define ERROR_NOT_ENOUGH_MEMORY 14
    
  • 保存后重新尝试编译安装

2. 给编译命令添加Windows版本定义参数

MinGW需要明确指定Windows版本才能导出全部系统常量,你可以在LuaRocks安装时传递编译参数:

luarocks install luasocket CFLAGS="-D_WIN32_WINNT=0x0501"

0x0501对应Windows XP,足够覆盖这个错误常量的定义;如果你的系统是Win10,也可以设为0x0A00(Win10版本号),同样能解决问题。

3. 直接用预编译的二进制包省事儿

如果不想折腾编译环节,你可以找针对Lua 5.1的Windows预编译版LuaSocket:

  • 把下载好的socket.dll放到Lua安装目录的clibs文件夹里
  • 把socket目录(包含Lua脚本文件)放到Lua的lua文件夹里
  • 这样直接就能调用LuaSocket,不用再走编译流程

试一下上面的方法,应该能搞定你遇到的编译错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:59:50