我有一个用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完全不同(看起来应该如此)。
我在做什么,或者假设,错了?
感谢并为一篇冗长的帖子感到抱歉。
EDIT。
好吧,我有两个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都有自己的这些值的内置集。