我觉得应该有一个简单的方法来做,但是我的googlefu失败了,所以我非常感谢一些有关如何在进行qmake时切换(甚至永久更改)哪个版本的Qt的信息。如果我问哪个版本,我会得到以下信息:
~ $ qmake --version
QMake version 3.0
Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu
我已经安装了QtCreator,但是我不确定从这里去哪里。
我觉得应该有一个简单的方法来做,但是我的googlefu失败了,所以我非常感谢一些有关如何在进行qmake时切换(甚至永久更改)哪个版本的Qt的信息。如果我问哪个版本,我会得到以下信息:
~ $ qmake --version
QMake version 3.0
Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu
我已经安装了QtCreator,但是我不确定从这里去哪里。
Answers:
这不一定特定于Unix / Linux,因此最好在Stack Overflow上提出。即便如此,QtCreator通常非常擅长检测替代的Qt安装,只需创建一个新项目并Projects
在左侧的选项卡下查看即可。您可以在那里设置不同的构建配置。应该有一个下拉框,从每种配置的各种已安装版本中进行选择。
否则,似乎要使用QTDIR
环境变量来设置Qt版本。默认情况下,QtCreator会/usr/share/qt4
为我设置此选项,因此将其设置为等效路径(即配置文件所在的路径)应使qmake使用其他版本进行构建。您可以使用以下内容进行测试:
QTDIR=/usr/share/qtX qmake --version
也可以在.pro
文件中进行设置,但是如果没有设置(与很多qmake
变量一样)。
另外,如果要使用特定的主要版本进行构建,qmake
通常只需将其链接到默认主要版本的二进制文件即可。实际的二进制文件是qmake-qt4
,qmake-qt5
等等。另请参见man qtchooser
和qtX-default
基于Debian的系统上的软件包。
qtchooser
Ubuntu 13.04和13.10上存在一个错误,该错误似乎影响Qt应用程序检测不同Qt版本的方式,请参阅https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/1177823。这也可能影响QtCreator。
它帮助我使用-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
有更好的方法。
如果要永久保留更改,则需要修改/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
现在,它应该始终使用指定的版本。
上述许多答案都会起作用。但是,我个人发现它们都不是持久性的。例如,我可以运行以下命令:
$ 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
查看计算机上安装了哪些版本。
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 apt-get install qt5-default
如果您想使用qt5
,请qt4
使用:
sudo apt-get install qt4-default