2013-08-28 39 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 
}