致命错误:sys/socket.h:没有那个文件或目录,x86_64-w64-mingw32 模式。

8

我正在开发一个依赖于Socket库的程序,但在编译过程中出现了以下提示:

fatal error: sys/socket.h: No such file or directory
 #include <sys/socket.h>

我的构建环境: Cygwin x64版本下的Windows 8.1, 构建目标:x86_64-w64-mingw32,作为--host=x86_64-w64-mingw32参数。

命令行:cfalgs=-m64 ./configure --prefix=/usr/

我正在构建使用GTK+ 2.0的应用程序。

我试图在路径cygwin64\usr\x86_64-w64-mingw32\sys-root\mingw\include\sys下找到socket.h文件中的find函数。但似乎根本不存在。

那么就没有x64版本的MinGW socket库吗?

1个回答

10

sys/socket.h 是一个 POSIX/SUS 头文件。MinGW 用于构建 WinAPI 可执行文件。要使用 POSIX/SUS 功能,请切换到使用 Cygwin 的 GCC 进行构建;要使用 WinAPI,请改用 winsock2.h


是的,我认为你提到的应该就是问题所在。实际上,我尝试以Cygwin模式构建它,并且在X11服务器上运行良好。因此,现在我想在Windows平台上构建一个独立版本。所以我可能需要倒退并包含winsock2.h。 - Jeffrey Ye
1
@Ignacio,但如果使用cygwin编译,生成的可执行文件在Windows上能正常运行吗? - Pacerier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接