我正在使用eclipse Luna开发c ++应用程序。此应用程序应在Linux和Windows上运行。由于该程序将包含getifaddrs
等网络功能。我必须为Windows和Linux使用不同的东西(我已经在我的代码中使用了它)。
问题是更多,如何为Windows环境编译程序?我可以在eclipse中设置一些首选项来在Linux编译和windows编译之间切换,还是有一个适用于两者的通用交叉编译器?
是否也可以运行应用程序,因为它可能是一个Windows环境,可能需要wine
来测试它?
答案 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/
这样,不会忽略当前操作系统的代码,只会编译正确的代码。