如何在同一台机器上使用不同版本的 Qt?
Posted
技术标签:
【中文标题】如何在同一台机器上使用不同版本的 Qt?【英文标题】:How to work with different versions of Qt on the same machine? 【发布时间】:2013-08-21 09:41:52 【问题描述】:我在计算机上安装了 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'
我可以在一个简单的测试项目(由 QtCreator 默认创建的项目)上复制这个问题,使用这个 pro 文件:
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 可以在同一台计算机上共存吗?怎么样?
【问题讨论】:
Tools > Options... > Build & Run > Qt Versions 显示什么? “Manual”分支下有Qt4和Qt5的qmake可执行文件的路径。自动检测为空。 您可以从那里删除 Qt5 条目。在 Qt 4.8.4 中没有任何意义。并检查您的项目设置是否反映了该更改。 @DavyJones:我从项目选项中删除了对 Qt5 的所有引用,包括“Qt 版本”和“编译器”。在“Kits”中,默认设置为 Qt 4.8.4,指向正确的 MinGW。我得到相同的链接器错误... 你的项目设置和变量在那里?他们也更新了吗?如果没有,您可能必须手动指向您的 4.8 安装。 【参考方案1】:我认为指向 5.1 安装的 QTDIR
环境变量可能存在问题。
您可以像这样创建两个批处理文件(可能需要添加 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 实例时有时会出现问题,例如第二个实例无法写入控制台。
【讨论】:
可以在 QtCreator 设置中设置自定义构建环境。 QtCreator 也会自动设置 QTDIR 变量。 qt-project.org/doc/qtcreator-2.5/… 漂亮,从来不知道。我已经成功地使用了 Visual Studio 的批处理文件方法,其中更改 QTDIR 就足够了以上是关于如何在同一台机器上使用不同版本的 Qt?的主要内容,如果未能解决你的问题,请参考以下文章
可以在同一台机器上安装两个不同版本的 Android Studio 吗?
具有不同.net版本的多个应用程序可以在同一台服务器机器上运行吗