luasocket ERROR_NOT_ENOUGH_MEMORY 声明
luasocket ERROR_NOT_ENOUGH_MEMORY declaration
在安装了 MinGW 的 windows 7 中,我尝试在 lua-5.3.4 环境中使用 luarocks-2.4.3-win32 安装 luasocket
我给出 shell 命令
c:\>luarocks install c:\luasocket-master\luasocket-scm-0.rockspec
或
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
我用谷歌搜索了这个,但没办法,我什么也没找到。
好像是编译器没有找到头文件,我检查了环境变量中的所有路径,都没有问题。
也许一些兼容性问题?
过去有人遇到过这个问题吗?
谢谢大家,
彼得罗
通过使用 mingw-w64(和 msys2)而不是 mingw 解决。
而且 - 更重要的是 - 这个 (https://computingabdn.com/softech/mingw-howto-install-gcc-for-windows/) 有关如何正确安装这两个软件包的详细说明(在安装程序中使用默认配置设置不会削减它:)。
在安装了 MinGW 的 windows 7 中,我尝试在 lua-5.3.4 环境中使用 luarocks-2.4.3-win32 安装 luasocket 我给出 shell 命令
c:\>luarocks install c:\luasocket-master\luasocket-scm-0.rockspec
或
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
我用谷歌搜索了这个,但没办法,我什么也没找到。 好像是编译器没有找到头文件,我检查了环境变量中的所有路径,都没有问题。 也许一些兼容性问题? 过去有人遇到过这个问题吗?
谢谢大家,
彼得罗
通过使用 mingw-w64(和 msys2)而不是 mingw 解决。
而且 - 更重要的是 - 这个 (https://computingabdn.com/softech/mingw-howto-install-gcc-for-windows/) 有关如何正确安装这两个软件包的详细说明(在安装程序中使用默认配置设置不会削减它:)。