本文主要是介绍QT项目在VS上的编译,windows.h与winsock2.h存在多个重定义的问题的解决方法。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【原因】
在<windows.h>中包含了<winsock.h>头文件,由于其版本的不同,导致出现上述的错误。<windows.h>中相关代码如下:
#ifndef WIN32_LEAN_AND_MEAN
#include <cderr.h>
#include <dde.h>
#include <ddeml.h>
........
#ifndef _MAC
#include <winperf.h>
#include <winsock.h>
#endif
.......
#include <commdlg.h>
#endif
#endif
【解决办法】
一、打开项目属性 --> C/C++ --> 预处理器 --> 预处理器定义,然后增加定义:WIN32_LEAN_AND_MEAN
二、调整头文件引入顺序,将winsock2.h放在前面,即
#include <winsock2.h>
#include <windows.h>
三、在保存头文件第一行,添加
#include <winsock2.h>
这篇关于QT项目在VS上的编译,windows.h与winsock2.h存在多个重定义的问题的解决方法。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!