编译部分代码依赖于Qt中的OS

时间:2013-08-28 07:13:31

标签: qt

我需要弄清楚我的程序在运行时运行的操作系统。

我正在使用Qt 4.8.1,MinGW。我的程序应在Windows或Linux上运行命令行QProcess。现在我需要一种开关来根据操作系统运行不同的代码。我知道像Q_OS_WIN23Q_OS_LINUX等宏。但我不知道如何在编译时切换代码部分,所以根据操作系统它会忽略不相关的代码?你能通过代码段显示吗? 先谢谢!

2 个答案:

答案 0 :(得分:5)

使用#ifdefs以便在编译时确定操作系统:

#ifdef Q_OS_MAC
// mac code here
#endif

#ifdef Q_OS_LINUX
// linux specific code here
#endif

#ifdef Q_OS_WIN32
// windows code here
#endif

答案 1 :(得分:1)

我更喜欢在项目级别上执行此操作,并在每个文件中单独使用平台特定代码。请参阅documentation

示例:

win32 {
    SOURCES += paintwidget_win.cpp
}