我有一个使用QWizard类的基于Qt4的C ++应用程序。这是一个非常简单的应用程序,基本上只是一个向导。它不使用QtCreator,而是使用Visual Studio项目(我不知道为什么,但我认为这是因为项目最初相当小,我们所有其他项目都使用Visual Studio)。因此,没有.pro文件,而是在VS项目中手动设置所有命令,如moc.exe。
我需要将应用程序移植到Qt5,因为在Windows上更改DPI设置时会出现很多渲染问题,而且从我读过的内容来看,Qt5有更好的支持(最终我想要迁移)反正)。
我阅读了Qt关于从Qt4转换到Qt5的文档并下载了最新版本的Qt(我自己没有构建它,我想我可以试试)。
我修改了一些已更改的API调用,并调整了标题(QtWidgets而不是QtGui等)。
我遇到的问题是我从各种头文件中收到大量“无法找到文件”的错误。它从具有
的全局头文件qglobal.h开始#ifdef QT_BOOTSTRAPPED
#include <QtCore/qconfig-bootstrapped.h>
#else
#include <QtCore/qconfig.h>
#include <QtCore/qtcore-config.h>
#endif
我没有定义QT_BOOTSTRAPPED
,因此找不到任何一个头文件的错误,所以我定义了QT_BOOTSTRAPPED
。我有点困惑,我会立即得到这个错误。
进行此更改后,一些文件开始编译,但是我从各种* global.h文件中得到了更多错误,包括:
示例:
qt5\src\qtbase\include\qtgui\../../src/gui/kernel/qtguiglobal.h(44): fatal error C1083: Cannot open include file: 'QtGui/qtgui-config.h': No such file or directory
我在这里完全失败了。我不知道那些“...- config.h”文件是什么,它们用于什么,以及它们在我的机器上不存在的原因。
我得到的其他错误是:
error C2065: 'QT_VERSION_MAJOR': undeclared identifier
error C2065: 'QT_VERSION_MINOR': undeclared identifier
error C2065: 'QT_VERSION_PATCH': undeclared identifier
我可以明确地定义那些,但这似乎不是正确的方法?
我做了一些尽职调查,但却找不到其他人遇到这个问题,也无法从Qt本身找到任何关于这些文件的文件(我觉得这有点令人沮丧)。
我离Qt专家很远,这是三个使用Qt GUI的项目之一,这个项目相当静态,通常只是进行一些小调整,其中大部分都与Qt无关。