现象:
使用winsock2后,出现许多重定义错误。
原因是:
头文件包含顺序错误,这两个头文件是:#include <winsock2.h>和#include<windows.h>
解决办法:
方法1,#include <Windows.h>放在#include <WinSock2.h>后面。
方法2,在.pro文件中加入以下这句话
DEFINES += WIN32_LEAN_AND_MEAN
方法一比较简单,但是如果你是大型项目,那就不适用了,根本不知道哪里include到。所以方法二最合适。
使用方法二本人编译时出现了一个现象,类似下面这个截图
直接在报错的文件开头添加一句 using namespace std;彻底解决。
注意,宏定义#define WIN32_LEAN_AND_MEAN,它的作用实际上是当我们项目中包含了时去除一些头文件的包含, 加快编译速度