2013-08-28 40 views
1

我需要弄清楚我的程序在运行时运行的操作系统。编译部分代码依靠Qt中的操作系统

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

回答

4

使用#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

我喜欢做它在每个文件项目级别和单独的平台特定的代码。请参阅documentation

实施例:

win32 { 
    SOURCES += paintwidget_win.cpp 
}