qt项目winsock2中类型被winsock重定义了

windows项目中winsock.h、winsock2.h、windows.h的重复包含问题由来已久,今天在qt项目上遇到了有点闹心,

场景:项目新添加了一个第三方的库,应用而不调用的时候编译没问题,一旦包含头文件并且调用其中接口,就报错,各种类型重复定义

以前项目在vs里面,代码全部自己写的,大部分是因为winsock2.h和windows.h包含顺序引起的,可是今天用到全是qt和第三方的库,根本没有自己主动包含这些库的地方,于是从main.cpp里开始,把头文件的引用放到第一行,没事了。放到一堆include的最后一行,编译失败,于是一点点的定位,发现和项目中包含了qquickwidget、qquickview有关,但是也不能直接把这两个组件拿掉,

以前知道stdafx.h中定义

WIN32_LEAN_AND_MEAN

并且设置预编译头

qt里面就要在每一个包含的地方加上这个太麻烦,于是用了一个比较简便的方法

pro文件中加上

DEFINES += WIN32_LEAN_AND_MEAN

的定义

你可能感兴趣的:(qt)