在 linux 上开发也适用于 windows 的 C++ 应用程序

Develop c++ application on linux that also works on windows

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

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

您可以使用预处理器宏包装 OS 敏感代码,例如:

#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

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

这样,不适用于当前 OS 的代码将被忽略,只编译正确的代码。