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

如何在同一台机器上使用不同版本的Qt?,qt,qt4,qt5,conflicting-libraries,Qt,Qt4,Qt5,Conflicting Libraries,自从我在我的计算机上安装了Qt 4.8.4和Qt 5.1以来,我遇到了一些问题 当只有Qt4.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

自从我在我的计算机上安装了Qt 4.8.4和Qt 5.1以来,我遇到了一些问题

当只有Qt4.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可以在同一台计算机上共存吗?如何操作?

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

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

qtcreator484.bat:

qtcreator510.bat:

并将其放置在桌面上。然后始终通过所需配置的批处理文件启动QtCreator


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

什么是工具>选项…>生成和运行>显示Qt版本?在“手动”分支下有Qt4和Qt5的qmake可执行文件的路径。自动检测为空。您可以从中删除Qt5条目。Qt4.8.4中没有它的意义。并检查您的项目设置是否反映了该更改。@DavyJones:我从“Qt版本”和“编译器”的项目选项中删除了对Qt5的所有引用。在“Kits”中,默认设置为Qt 4.8.4,指向正确的MinGW。我得到了相同的链接器错误…你在那里项目设置和变量?它们是否也在更新?否则,您可能必须手动指向4.8安装。可以在QtCreator设置中设置自定义生成环境。此外,QtCreator会自动设置QTDIR变量。漂亮,我从来不知道。我已经成功地为VisualStudio使用了批处理文件方法,其中更改QTDIR就足够了
set QTDIR=C:\Qt\4.8.4
start qtcreator.exe
set QTDIR=C:\Qt\5.1.0
start qtcreator.exe