我有一个src文件,其中包含一些代码:

#ifndef WIN32
#define ...
#endif
#ifdef WIN32
#define ...
#endif

区分在linux或windows下编译时要做什么 . 当我在linux(gcc)和windows(mingw)下本地构建时,这很有效,windows构建是在linux主机上的vbox VM上完成的

现在我已经推进调查交叉编译,并注意到在Linux主机上为win32和win64交叉编译与相关的mingw linux-> windows交叉编译工具链,WIN32在此实例中定义

我的问题是,是否还有另一个 #ifdef 我可以使用,仅限于我在linux主机上使用mingw win32或win64交叉编译器时的情况,例如:如果我试图在我的VM内部在Windows主机上本地构建,那么 #define 就不存在了?

我需要这些方面的东西的原因是解决有关如何在linux / gcc下处理套接字和time.h相关内容的差异,使用mingw和使用mingw进行mingw和本机Windows编译的linux交叉编译到win32和win64的问题 . 正确的噩梦,因为它在每种情况下都有点不同)