我可以有正确的 qmake,但有错误的 qt 吗?

Could I have the correct qmake, but the wrong qt?

我有一个用cmake编译的Qt5代码,没有问题。然后我决定尝试qmake和运行成问题

看起来 qmake 在某种程度上使用 Qt4 而不是 Qt5,尽管 我认为 它被配置为 运行 Qt5。该代码包含一些严格的 Qt5 元素。 这是我从终端获得的信息:

首先,我同时拥有Qt4和Qt5:

wave@wave-T61:~$ qtchooser -l
4
5
default
qt4-i386-linux-gnu
qt4-x86_64-linux-gnu
qt4
qt5-x86_64-linux-gnu
qt5

显示 qmake 版本:

wave@wave-T61:~$ qmake -v
QMake version 3.0
Using Qt version 5.4.2 in /usr/lib/x86_64-linux-gnu

我可以通过设置来回切换:

wave@wave-T61:~$ export QT_SELECT=qt4
wave@wave-T61:~$ qmake -v
QMake version 2.01a
Using Qt version 4.8.6 in /usr/lib/x86_64-linux-gnu

wave@wave-T61:~$ export QT_SELECT=qt5
wave@wave-T61:~$ qmake -v
QMake version 3.0
Using Qt version 5.4.2 in /usr/lib/x86_64-linux-gnu

但是,无论我设置的 qmake 版本如何,我总是得到 Qt4 的外观,这与我使用 cmake 得到的完全不同(看起来应该如此)。

我在做什么,或者假设我做错了什么?

感谢并抱歉啰嗦 post。

编辑。

好吧,我有两个 Qt5 库源文件夹...cmake 配置为查看我安装 Qt5 的位置 - /opt/Qt/5.5/gcc_64/include/ - 没问题。 但后来我安装了 qmake 和 QCreator,突然间,有另一个,这是 qmake 正在寻找的地方 - 在 /usr/include/x86_64-linux-gnu/qt5/ .

现在,为什么会这样以及为什么第二组 Qt5 库可以像 Qt4 一样工作,这超出了我的理解范围。希望我可以重定向 qmake 并使其可用。

编辑 2. 看来我运气不好,要回到 cmake。来自 Qt 文档:

QT_INSTALL_PREFIX - 构建此 qmake 的 Qt 版本所在的位置。 这些内置属性不能有版本前缀,因为它们没有版本化,每个版本的 qmake 都有自己的内置值集。

在QtCreator中构建qmake项目时,对于select特定的Qt版本,您需要按照QtCreator documentation

中的描述添加所需的Qt版本