使用 qtchooser 选择 Qt5

J. *_*alt 10 qt 16.04

问题是,在我尝试从源代码构建超级对撞机之前,请确保我使用的是 Qt5。问题是这样的:

jsimon@edgy:~$ qmake -v
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
jsimon@edgy:~$ locate qmake
/usr/bin/qmake
Run Code Online (Sandbox Code Playgroud)

我认为 qtchooser 有什么配置错误,这里的文档:

Qtchooser 手册页

和这里:

Linux 上的 Qtchooser 从零开始

进一步挖掘,有一个包含一些符号链接的目录:

jsimon@edgy:/usr/lib/x86_64-linux-gnu/qtchooser$ ls -al
lrwxrwxrwx   1 root root    50 Sep  1 06:04 4.conf -> ../../../share/qtchooser/qt4-x86_64-linux-gnu.conf
lrwxrwxrwx   1 root root    50 Sep  1 06:04 5.conf -> ../../../share/qtchooser/qt5-x86_64-linux-gnu.conf
lrwxrwxrwx   1 root root    50 Sep  1 06:04 qt4.conf -> ../../../share/qtchooser/qt4-x86_64-linux-gnu.conf
lrwxrwxrwx   1 root root    50 Sep  1 06:04 qt5.conf -> ../../../share/qtchooser/qt5-x86_64-linux-gnu.conf
Run Code Online (Sandbox Code Playgroud)

另一个更深层次的目录在我看来就像问题一样,一个符号链接将 Qt4 作为默认值:

jsimon@edgy:/usr/lib/x86_64-linux-gnu/qt-default/qtchooser$ ls -al
lrwxrwxrwx 1 root root   53 Sep  1 06:04 default.conf -> ../../../../share/qtchooser/qt4-x86_64-linux-gnu.conf
Run Code Online (Sandbox Code Playgroud)

来自 qtchooser 的一些信息:

jsimon@edgy:~$ qtchooser -print-env
QT_SELECT="default"
QTTOOLDIR="/usr/lib/x86_64-linux-gnu/qt4/bin"
QTLIBDIR="/usr/lib/x86_64-linux-gnu"
Run Code Online (Sandbox Code Playgroud)

看看这个页面,它应该很简单:

处理多个 Qt 版本

然而:

jsimon@edgy:~$ export QT_SELECT=qt5
jsimon@edgy:~$ printenv
[snip]
QT_SELECT=qt5
[snip]
jsimon@edgy:~$ qmake -v
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt5/bin/qmake': No such file or directory
Run Code Online (Sandbox Code Playgroud)

回到我们开始的地方,没有变化。怎么办?

J. *_*alt 7

所有这一切都被证明是一个红鲱鱼:所需要的只是安装 qmake,例如:

sudo apt install qt5-qmake
Run Code Online (Sandbox Code Playgroud)