我有一个想在 Linux 上运行的 Qt 应用程序,但它使用的 API 仅在 Windows 上可用。可能有 2 或 3 个使用 API 的类,我试图不将它们与程序的其余部分紧密耦合。我显然可以在所有地方使用很多,#ifdef win32
但我相信在 .pro 文件中应该有更多的 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;
然后在cpp文件中使用了几次win32owc。所以我也希望在其他平台上排除所有这些。希望这是有道理的。
谢谢!