我应该用这样的条件来分离模块和头包含吗
/// .pro file
win32:QT += winextras
/// .cpp file
#ifdef Q_OS_WIN
#include <QtWin>
#endif
/// ... later
#ifdef Q_OS_WIN
QWinTaskbarButton *taskbarButton = new QWinTaskbarButton(this);
#endif
或者我可以省略那些条件句吗?
如果你想为多个平台编译你的项目,你肯定应该以有条件的方式使用它们。这是因为winextras
、x11extras
、macextras
和androidextras
等模块仅适用于特定的操作系统。例如,在Linux上,qmake在创建使用winextras
的项目时会给您带来错误。
除非你只想为特定的平台编译它,否则没有必要让它成为有条件的。所以这完全取决于你和你的用例。