在.pro文件中强制指定QT的特定版本

4
我正在寻找一种在.pro文件中强制使用特定版本QT的方法。更具体地说,我想强制qmake与我的项目一起仅使用QT 5.x版本,而不是QT 4.x和QT 5.x。
有没有办法这样做?
PS:我不是在寻找一种停止/中止编译过程的方法(即检查QT版本,如果低于5.x,则抛出qFatal /等效)。我正在寻找一种在使用qmake生成Makefile时实际选择要使用的版本的方法。
3个回答

7

如果用户使用了你不想要的qmake版本,你可以抛出一个错误。例如:

lessThan(QT_MAJOR_VERSION, 5): error("requires Qt 5")

4

我真的怀疑你能做到这一点。 qmake 是框架的一部分,与库一起使用。当你说特定版本的Qt时,你只是指库,但这是不正确的。

要使用特定版本的Qt,实际上需要运行不同版本的qmake。如果你正在使用QtCreator,你应该在项目选项中选择它,如果没有,请输入文件qmake的绝对路径。你可以通过输入qmake --version来查看qmake使用的Qt版本。


这正是我所想的,但我正在运行qmake-qt5,但仍然得到一个使用qt4的Makefile!(今天下午我会再三检查,以确保,但这是昨天测试中我能看到的最后一件事) - alexandernst
非常奇怪,请尝试以下步骤:1.在您的项目目录中打开终端。2.运行 qmake-qt5 --version 确保您正在使用正确的Qt版本。3. 运行 qmake-qt5 && make clean && make。4.进入您的应用程序并检查依赖项(在Linux中使用“ldd”命令)。 - Amartel
这里是你所要求的运行日志 http://pastebin.com/j2m5jLCM。它使用qt4和qmake-qt5,真的很奇怪。 - alexandernst

1
正如Amartel在他的回答中所写,您应该指向正确的qmake版本(在控制台中键入qmake --version检查)。
可能是您的项目使用了错误的qmake可执行文件,并且即使您发出nmake clean或make clean命令,某些文件也不会被删除。
在清理后检查源树中是否有Makefile(这些文件通常包含要使用的qt版本的路径,如果没有正确地重新生成,则会指向错误的Qt版本)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接