在linux上开发c ++应用程序,也适用于Windows

时间:2015-01-29 22:28:42

标签: c++ cross-compiling

我正在使用eclipse Luna开发c ++应用程序。此应用程序应在Linux和Windows上运行。由于该程序将包含getifaddrs等网络功能。我必须为Windows和Linux使用不同的东西(我已经在我的代码中使用了它)。 问题是更多,如何为Windows环境编译程序?我可以在eclipse中设置一些首选项来在Linux编译和windows编译之间切换,还是有一个适用于两者的通用交叉编译器?

是否也可以运行应用程序,因为它可能是一个Windows环境,可能需要wine来测试它?

1 个答案:

答案 0 :(得分:1)

您可以使用预处理器宏包装操作系统敏感代码,如:

#ifdef __PREDEFINED_MACRO_FOR_OS1
// code specific for OS1
#elif __PREDEFINED_MACRO_FOR_OS2
// code specific for OS2
...
#elif _PREDEFINED_MACRO_FOR_OSN
// code specific for OSN
#else 
#error "Operating System not supported."
#endif

您可以在此处找到每个操作系统的特定宏:http://sourceforge.net/p/predef/wiki/OperatingSystems/

这样,不会忽略当前操作系统的代码,只会编译正确的代码。