3

Qt5 是新一代的 Qt,它有一些变化。

我有一个使用 Qt4 构建的项目。我已经下载了 Qt5-VisualStudio2010 包,我正在尝试将我的项目从 Qt4 移植到 Qt5。出现问题。

所有“包含”路径都已得到很好的修复。但是,编译器现在报告了数百个“未解析的外部符号”(几乎所有的函数调用,听起来编译器都找不到任何 .lib 文件)。我什至尝试添加在 Qt SDK 文件夹中找到的所有 .lib 文件,但没用。最基本的类和方法: QApplication::exec(...) 也报告为“未解析的符号”。

项目文件已更改为适合 Qt5 打包:

myproject.pro file:
QT += widgets

有人对这个新版本的 Qt 有过类似的经验吗?

4

3 回答 3

3

来自“qt_newbie89”(http://qt-project.org/forums/viewthread/23200):

我“意外”解决了这个问题。我右键单击项目窗口中的项目文件夹并选择 qmake。之后,选择运行,所有错误都消失了。顺便说一句,我不知道为什么会这样。

来自“ChrisW67”(http://qt-project.org/forums/viewthread/23253/):

Makefile 文件并没有“损坏”:它与您离开时完全一样,充满了适合先前 Qt 4 安装的命令和路径。当 Qt Creator 运行 nmake 来构建项目时,nmake 不会自动重新运行 qmake 来生成 Makefile,因为(未触及的)Makefile 比生成它的 pro 文件更新。这是正常且正确的 make 行为,但它导致您的 Qt5 停顿与预期的 Qt4 安装不匹配。

我的说法是:是的,这确实解决了链接问题!问题实际上是,当使用 Qt4 创建项目时,“make”文件也很好地与项目一起创建。当我删除 Qt4,安装 Qt5 并通过 Qt5(使用新的 Qt Creator)导入旧项目时,“make”文件可能已损坏。

于 2013-01-01T06:51:25.413 回答
1

这也发生在我身上,我确实遵循了。

  1. 另外链接了 Qt5Widgetsd.lib
  2. 将项目属性“将 Wchar_t 视为内置”更改为 true(在 C++ -> 语言部分)。
于 2014-04-01T08:29:49.490 回答
1

我怀疑你不会是唯一遇到这个问题的人。你看过:这个了吗?它讨论了 qt/base/bin 中的一个 PERL 脚本,名为:fixqt4headers.pl。这旨在修复标题。我注意到另一个链接,如果它不能解决你的问题,它可能会有所帮助,试试这个,它看起来是经过深思熟虑的。而且,不,我没有尝试过。我实际上还没有升级到 Qt 5。干杯!

于 2013-01-01T04:38:10.970 回答