【发布时间】:2012-12-20 19:57:26
【问题描述】:
我有一个想在 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。所以我也希望在其他平台上排除所有这些。希望有道理。
谢谢!
【问题讨论】:
标签: c++ qt cross-platform qmake