[英]Winsock2.h: No such file or directory
我正在尝试使用mingw32 for Linux编译它 。
但是,我收到以下错误和警告:
# i586-mingw32msvc-gcc ms04-020.c -lws2_32 -o ms04-020.exe
ms04-020.c:43:22: error: Winsock2.h: No such file or directory
ms04-020.c: In function ‘main’:
ms04-020.c:113: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:114:11: warning: unknown escape sequence '\;'
ms04-020.c: In function ‘readwrite’:
ms04-020.c:251: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:259: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:264: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:279: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:285: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:290: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:301: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:307: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:312: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c: In function ‘client_connect’:
ms04-020.c:333: warning: incompatible implicit declaration of built-in function ‘printf’
ms04-020.c:343: warning: incompatible implicit declaration of built-in function ‘printf’
如何修复Winsock2.h
的错误? 我确实设法在Windows 7上使用Visual Studio 2013进行编译,这是一个可接受的解决方案,但是使用Visual Studio 2010或更高版本进行编译会使应用程序与Windows 2000目标操作系统不兼容 。 因此,即使它以这种方式构建,二进制文件也不会执行。
正如你可以猜到的那样, winsock2.h
与Windows的TCP / IP套接字实现直接相关,并且只存在于Windows系统上。
在Windows和Linux之间可能很难完全兼容include
。 恕我直言,你应该:
从源代码中删除#include <winsock32.h>
以进行Linux编译或更好地编写:
#ifdef _WIN32 #include <Winsock2.h> #endif
#else
部分中)缺少的标题 目前, warning: incompatible implicit declaration of built-in function 'printf'
表明你缺少#include <stdio.h>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.