在安装了MinGW的Windows 7中,我尝试使用luarocks-2.4.3-win32在lua-5.3.4环境中安装luasocket 我给出了shell命令
c:\>luarocks install c:\luasocket-master\luasocket-scm-0.rockspec
OR
c:\>luarocks install luasocket
我总是收到以下错误:
C:\luasocket-master>luarocks install c:\luasocket-master\luasocket-scm-0.rockspec
mingw32-gcc -O2 -c -o src/luasocket.o -IC:/Program Files (x86)/lua-5.3.4/include src/luasocket.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/timeout.o -IC:/Program Files (x86)/lua-5.3.4/include src/timeout.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/buffer.o -IC:/Program Files (x86)/lua-5.3.4/include src/buffer.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/io.o -IC:/Program Files (x86)/lua-5.3.4/include src/io.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/auxiliar.o -IC:/Program Files (x86)/lua-5.3.4/include src/auxiliar.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/options.o -IC:/Program Files (x86)/lua-5.3.4/include src/options.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/inet.o -IC:/Program Files (x86)/lua-5.3.4/include src/inet.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/except.o -IC:/Program Files (x86)/lua-5.3.4/include src/except.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/select.o -IC:/Program Files (x86)/lua-5.3.4/include src/select.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/tcp.o -IC:/Program Files (x86)/lua-5.3.4/include src/tcp.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/udp.o -IC:/Program Files (x86)/lua-5.3.4/include src/udp.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/compat.o -IC:/Program Files (x86)/lua-5.3.4/include src/compat.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
mingw32-gcc -O2 -c -o src/wsocket.o -IC:/Program Files (x86)/lua-5.3.4/include src/wsocket.c -DLUASOCKET_DEBUG -DLUASOCKET_INET_PTON -DWINVER=0x0501 -DLUASOCKET_API=__declspec(dllexport) -DMIME_API=__declspec(dllexport)
In file included from src/wsocket.h:11:0,
from src/socket.h:18,
from src/wsocket.c:10:
src/wsocket.c: In function 'socket_gaistrerror':
src/wsocket.c:417:14: error: 'ERROR_NOT_ENOUGH_MEMORY' undeclared (first use in this function)
case EAI_MEMORY: return PIE_MEMORY;
^
src/wsocket.c:417:14: note: each undeclared identifier is reported only once for each function it appears in
Error: Build error: Failed compiling object src/wsocket.o
我用Google搜索了,但没办法,我什么都没发现。 似乎编译器没有找到一些标题,我检查了环境变量中的所有路径,它们都没问题。 也许一些兼容性问题? 过去有没有人面对这个问题?
谢谢大家,
彼得
答案 0 :(得分:0)
使用mingw-w64(和msys2)代替mingw解决。
而且 - 更重要的是 - 这个(https://computingabdn.com/softech/mingw-howto-install-gcc-for-windows/)有关如何正确安装两个软件包的详细说明(使用安装程序中的默认配置设置不会削减它:)。