如何更改用于qmake的Qt版本?


31

我觉得应该有一个简单的方法来做,但是我的googlefu失败了,所以我非常感谢一些有关如何在进行qmake时切换(甚至永久更改)哪个版本的Qt的信息。如果我问哪个版本,我会得到以下信息:

~ $ qmake --version
QMake version 3.0
Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu

我已经安装了QtCreator,但是我不确定从这里去哪里。

Answers:


16

这不一定特定于Unix / Linux,因此最好在Stack Overflow上提出。即便如此,QtCreator通常非常擅长检测替代的Qt安装,只需创建一个新项目并Projects在左侧的选项卡下查看即可。您可以在那里设置不同的构建配置。应该有一个下拉框,从每种配置的各种已安装版本中进行选择。

否则,似乎要使用QTDIR环境变量来设置Qt版本。默认情况下,QtCreator会/usr/share/qt4为我设置此选项,因此将其设置为等效路径(即配置文件所在的路径)应使qmake使用其他版本进行构建。您可以使用以下内容进行测试:

QTDIR=/usr/share/qtX qmake --version

也可以在.pro文件中进行设置,但是如果没有设置(与很多qmake变量一样)。

另外,如果要使用特定的主要版本进行构建,qmake通常只需将其链接到默认主要版本的二进制文件即可。实际的二进制文件是qmake-qt4qmake-qt5等等。另请参见man qtchooserqtX-default基于Debian的系统上的软件包。

更新资料

qtchooserUbuntu 13.04和13.10上存在一个错误,该错误似乎影响Qt应用程序检测不同Qt版本的方式,请参阅https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/1177823。这也可能影响QtCreator。


谢谢!我需要使用qmake-qt4而不是秃头的qmake-很简单,但我只是找不到所需的信息。谢谢!
Tamsyn Michael

@TamsynMichael-是的,在Linux方面,bin中的qmake只是一个符号链接。因此,如果使用诸如update-alternatives之类的东西来回切换,那可能是理想的。它不在更新替代品中,并且像PyQt构建脚本之类的东西无论如何都希望直接引用二进制文件-而不是符号链接。
RobotHumans

13

它帮助我使用-qt=qt5开关或QT_SELECT=qt5环境变量。

$ qmake --version
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu

$ qmake -qt=qt5 --version
QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu

$ QT_SELECT=qt5 qmake --version
QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu

次要版本和补丁版本如何?例如,我们如何显式选择5.9.4或5.11而不是5.12?
DavidJ

4

更好的方法

如果要永久保留更改,则需要修改/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf文件,该文件是的符号链接../../../../share/qtchooser/qt4-x86_64-linux-gnu.conf

这是我的系统的示例(Ubuntu 17.10 x64,Qt 5.10.1)。我建议同时保留原始符号链接文件及其目标(以防您要恢复原始配置)。并在默认位置创建新文件(以保持一致性)。所以这是步骤:

重命名符号链接文件:

sudo mv /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf_orig

创建一个新的目标配置文件(使用任何名称):

gksudo gedit /usr/share/qtchooser/my_Qt_5.10.1_Desktop_gcc_x64.conf

该文件必须包含两行:第一行是Qt二进制文件(包括qmake)的路径,第二行是Qt库(包括.so文件)的路径。就我而言

<Qt_dir>/5.10.1/gcc_64/bin
<Qt_dir>/5.10.1/gcc_64/lib

保存并关闭。创建一个default.conf指向新配置文件的符号链接:

ln -s /usr/share/qtchooser/my_Qt_5.10.1_Destop_gcc_x64.conf /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

检查您的Qt版本:

qmake --version

现在,它应该始终使用指定的版本。


2

在Debian Jessie Stable等发行版中,您可以执行以下操作:

sudo apt-get install -y qt4-qmake qt4-dev-tools
sudo update-alternatives --install "/usr/bin/qmake" "qmake" "/usr/bin/qmake-qt4" 40
sudo update-alternatives --config qmake

如果需要再次更改,只需选择所需的版本,只需在第三行再次运行即可。


2

上述许多答案都会起作用。但是,我个人发现它们都不是持久性的。例如,我可以运行以下命令:

$ QT_SELECT=qt5 qmake --version
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

但是,如果我打开一个新终端并检查Qt版本,它将恢复为默认版本,并且如果您安装了多个Qt版本,则默认版本可能不是您想要的版本。您可以通过运行以下命令来判断:

$ qtchooser -print-env
QT_SELECT="default"
QTTOOLDIR=...
QTLIBDIR=...

进行更改的唯一方法是更改​​默认版本。为此,请编辑/usr/lib/x86_64-linux-gnu/qtchooser/default.conf并更改以下行:

/usr/lib/x86_64-linux-gnu/qt5/bin

qt5可以在其中更改为所需的任何版本。您可以使用该命令qtchooser -list-versions查看计算机上安装了哪些版本。


2

qmake/usr/bin/qmake)实际上只是qtchooser/usr/bin/qtchooser)的符号链接。

这是来自的报价man qtchooser

FILES
       /etc/xdg/qtchooser/default.conf
              System-wide  configuration  files. Each has two lines, the first
              is the path to the binaries and the second is the path to the Qt
              libraries.  If  a default.conf is provided, the settings from it
              will be automatically used in case nothing else is selected.

       $HOME/.config/qtchooser/*.conf
              User configuration files.

该文件的/etc/xdg/qtchooser/default.conf优先级高于/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf。以下是在qmake系统示例中选择默认Qt版本的步骤(Ubuntu 17.10 x64,Qt 5.10.1)。

创建/etc/xdg/qtchooser目录:

sudo mkdir /etc/xdg/qtchooser

创建和编辑配置文件:

gksudo gedit /etc/xdg/qtchooser/default.conf

如上所述。该文件必须包含两行:第一行是Qt二进制文件(包括qmake)的路径,第二行是Qt库(包括.so文件)的路径。以我为例:

<Qt_dir>/5.10.1/gcc_64/bin
<Qt_dir>/5.10.1/gcc_64/lib

保存并关闭。现在qmake应该使用指定的Qt版本。


一个符号链接也可以工作:sudo mkdir -p / etc / xdg / qtchooser && sudo ln -s /usr/share/qtchooser/qt5-x86_64-linux-gnu.conf /etc/xdg/qtchooser/default.conf
maharvey67

1
sudo apt-get install qt5-default

如果您想使用qt5,请qt4使用:

sudo apt-get install qt4-default

+1,令人敬畏和简单,太糟糕了,这个答案在页面上太低了
jpa

0

在同时具有qt-3.3.8qt-4.8.5环境的Fedora 23的(我的)默认设置中,还必须将/usr/libxx/qt4/bin/目录临时添加到中,PATH以允许cmake/ qmake软件包找到正确的版本。这在构建代码时很有必要,而不是在运行完成的QT4应用程序时。

出于某种原因,QT3路径已经永久安装在此处,很遗憾在的开始安装PATH,这使QT版本选择器无法正常工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.