2
我有一個Qt應用程序,我想在Linux上運行,但是它使用僅在Windows上可用的API。可能有2或3個類使用API,我試圖不將它們與程序的其餘部分緊密結合。我明顯可以在整個地方使用很多#ifdef win32
,但我相信在.pro文件中應該有更多的Qt方法。如何在基於平臺的Qt中排除某些文件
理想情況下,我希望qmake檢測系統並查找API,如果它是win32。然後,如果找不到它或者它位於不同的平臺上,請從API中排除庫和所有包含頭文件的類。
這裏是我的意思的例子:
In.pro文件我現在有
SOURCES += main.cpp \
mainwindow.cpp \
win32apiwrapperclass.cpp \
...
LIBS += "a/path/to/win32/only/lib -lwin32only
INCLUDEPATH += "a/path/to/win32/only/includes"
DEPENDPATH += "a/path/to/win32/only/includes"
另外在MainWindow.h我有類似:
private:
Win32OnlyWrapperClass* win32owc;
然後win32owc在cpp文件中使用了幾次。所以我希望所有這些都排除在其他平臺上。希望它是有道理的。
謝謝!