#defines用于主机操作系统和交叉编译器条件代码

时间:2014-11-12 16:39:30

标签: c linux windows gcc mingw

我有一个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相关内容的差异的问题,linux使用mingw和使用mingw进行本机windows编译的交叉编译到win32和win64 (这是一个正确的噩梦,因为它在每种情况下都有点不同)

0 个答案:

没有答案