qt - 如何在同一台机器上使用不同版本的 Qt?

标签 qt qt4 qt5 conflicting-libraries

因为我在我的计算机上安装了 Qt 4.8.4 和 Qt 5.1,所以我遇到了问题。

当只有 Qt 4.8.4 存在时,一切都很好。

当我添加 Qt 5.1 时,这个工作正常,但 Qt 4.8.4 给了我这些链接器错误:

Makefile:34: recipe for target 'debug' failed
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot find -lQtGuid
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot find -lQtCored
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [debug/BuildSystemTest3.exe] Error 1
mingw32-make: *** [debug] Error 2
09:21:00: The process "C:\MinGW\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project BuildSystemTest3 (kit: Desktop)
When executing step 'Make'

我可以用这个 pro 文件在一个简单的测试项目(默认情况下由 QtCreator 创建的项目)上复制这个问题:
QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = BuildSystemTest3
TEMPLATE = app

SOURCES += main.cpp mainwindow.cpp
HEADERS += mainwindow.h

两个 Qt 版本安装在两个单独的目录中:C:\Qt\4.8.4 和 C:\Qt\Qt5.1.0
MinGW 是指向 MinGW_4.6.2(用于 Qt4)或 MinGW_4.7.2(用于 Qt5)的链接。

不同版本的 Qt 可以在同一台计算机上共存吗?如何?

最佳答案

我认为 QTDIR 可能有问题指向 5.1 安装的环境变量。

您可以像这样创建两个批处理文件(可能必须添加 qtcreator.exe 的完整路径):

qtcreator484.bat:

set QTDIR=C:\Qt\4.8.4
start qtcreator.exe

qtcreator510.bat:
set QTDIR=C:\Qt\5.1.0
start qtcreator.exe

并放置它们,例如在您的桌面上。然后总是通过你想要的配置的批处理文件启动 QtCreator。

侧节点:同时启动两个 QtCreator 实例时有时会出现问题,例如第二个实例无法写入控制台。

关于qt - 如何在同一台机器上使用不同版本的 Qt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18354013/

相关文章:

QtQuick : how to override window close event?

c++ - 在构建基于 C++ 的软件中包含 QtGui 文件的问题

c++ - 复制目录和子目录

c++ - 不强调 QTextBrowser 中的超链接

c++ - 从代码访问在 UI 中创建的 Qt 布局?

qt - 无法访问 TabView/Tab 内的项目

c++ - 什么是隐式共享类?

c++ - QTimer 不触发

c++ - QTableView选择单个单元格

qt - 从 qt 中的对话框打开新对话框