客户端服务器程序C Windows-库冲突
我在Eclipse的Windows机器上用C创建了一个经典的客户机-服务器程序。代码本身不会生成任何错误。我唯一的错误是关于库的问题。我包括以下图书馆:客户端服务器程序C Windows-库冲突,c,windows,sockets,libraries,C,Windows,Sockets,Libraries,我在Eclipse的Windows机器上用C创建了一个经典的客户机-服务器程序。代码本身不会生成任何错误。我唯一的错误是关于库的问题。我包括以下图书馆: #include <windows.h> #include <winsock2.h> #include <ws2tcpip.h> #include <stdlib.h> #include <stdio.h> 唯一的问题是我没有包括winsock.h,并且只包括winsock2.h,正
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
唯一的问题是我没有包括winsock.h,并且只包括winsock2.h,正如它们指定的那样
我如何解决这个问题
更新
我现在按照以下顺序定义了库:
#define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
更新2
我想这条警告可能与我不断遇到的错误有关:
ignoring #pragma comment [-Wunknown-pragmas]
winsock2.h
顶部有一行:
#define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */
您需要在
windows.h
之前包含winsock2.h
谢谢您的回复。我不太明白:在windows.h之前我需要包括什么?是winsock2.h吗?因为我这样做了,并添加了您的#define,但现在我得到了更多的错误。如果您包括windows.h,windows.h将包括winsock.h。您需要在windows.h之前包含winsock2.h以防止出现这种情况。请用额外的错误更新你的问题,我是这么做的。请查看更新的问题。@JohnSmith您是否链接到ws2_32.lib?@JohnSmith,您以前的错误是编译错误。这些新错误是链接器错误,表示您没有按照指定的方式链接到ws2_32.lib
。请注意,你没有;不需要在代码中定义。这已经在winsock2.h
中了。
ignoring #pragma comment [-Wunknown-pragmas]
#define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */