我必须确保我的项目在Qt 4(我安装了4.7)和Qt 5(我有5.5)中构建。
为此,在我的许多地方,在pro文件中:
NOT_QT_4 {
QT += widgets
} else {
#Nothing specific
}
并在代码中:
#ifdef NOT_QT_4
#include <QtWidgets>
#else
#include <QtGui>
#endif
然而,每当我将构建从Qt 4切换到Qt 5时,我都会收到错误:
ui_somefile.h:14: error: QtGui/QAction: No such file or directory
#include <QtGui/QAction>
^
这是在使用Qt Designer创建的表单生成的ui_
文件中...所以我不能把我在常规代码中使用的定义。
要构建它是非常困难的:Build->Clean All
,擦除磁盘上的每个文件(debug
,release
,make*
,ui_*
) ,Build->Clean All
再次(当然没用),运行qmake
,再次构建...
我仍然必须重复这样做,因为ui_
文件似乎会因缺陷信息而重新生成。
由于我必须在Qt4和Qt5版本中提出每个提交版本,我现在必须做很多事情......
如何在Qt5中正确构建它 - 或者我如何轻松地清理构建的特定部分? (干净的构建需要几分钟......巨型项目......)
答案 0 :(得分:0)
我建议您将这些ui _ * .h文件放在不同的位置,以便结果可能不同,并在QT版本之间进行唯一编译。
for ( $row = 8; $row >= 0; $row-- ) {
echo substr(
str_repeat( " - ", $row ) . str_repeat( " + ", max( 15 - ($row*2), 0 ) ) . str_repeat( " - ", $row ),
0, 45 );
}
答案 1 :(得分:0)
您应该进行阴影构建以从源中获取所有输出文件。似乎uc.exe在Qt4和Qt5之间发生了变化。就我而言,我得到Qt5.6然后我应该写我的.pro greaterThan(QT_MAJOR_VERSION,4):QT + =小部件,如果不是没有ui _ * .h被释放。为了正确清理你的项目,我猜你应该改变你的makefile的某些部分。什么清洁剂用于?