在包含
#warning Please include winsock2.h before windows.h
我有一个翻译单元,其中包含 Winsock2.h 和 windows.h - 一个非 Boost ASIO TCP 客户端。在包含windows.h和winsock2.h之前,我尝试了各种
#define WIN32_LEAN_AND_MEAN
或#define _WINSOCKAPI_
,但没有任何帮助,#include的顺序也根本不重要,总是弹出同样的错误,并且警告总是在该 TCP 客户端的同一位置触发。
由于我最终找到了问题的根源,我想我会将这些信息添加到SO知识库中。
TLDR:项目中的另一个 .cpp 包含
问题的原因原来是另一个翻译单元,在逻辑上与触发警告消息的位置完全无关,也出于自己的目的而包含
一旦我确定串行库中的
最终,我选择了这个:
g++ -std=c++2a -DWIN32_LEAN_AND_MEAN...