2013-05-06 58 views
4

我正在寻找一种方法来在.pro文件中强制特定版本的QT。更具体地说,我想强制qmake只使用QT 5.x版本与我的项目,而不是QT 4.x和QT 5.x在.pro文件中强制使用特定版本的QT

有没有办法做到这一点? PS:我不是要求停止/停止编译过程的方法(也就是检查QT版本,如果低于5.x只是抛出qFatal /等价物)。我正在寻找一种方式来实际选择所使用的版本,同时与qmake

回答

4

产生Makefile我真的怀疑你能做到这一点。 qmake是框架的一部分,并与库一起使用。当你说Qt of specific verion你的意思是只有库,但它是不正确的。

要使用特定版本的Qt,您需要运行不同版本的qmake。如果您正在使用QtCreator - 您应该在项目的选项中选择它,如果不是的话 - 输入文件qmake的绝对路径。你可以找出Qt qmake使用哪个版本,你可以输入qmake --version

+0

这就是我的想法,但我正在运行qmake-qt5,而且我还在使用qt4的Makefile! (我会在今天下午进行三重检查,只是可以肯定的,但这是我昨天测试的最后一件事) – alexandernst 2013-05-06 11:03:34

+0

这很奇怪。试试这个:1.打开项目目录中的终端。 2.运行'qmake-qt5 --version'确保您使用的是正确版本的Qt。 3.运行'qmake-qt5 && make clean && make' 4.转到您的应用程序并检查依赖项(linux中的'ldd'命令)。 – Amartel 2013-05-06 11:13:47

+0

http://pastebin.com/j2m5jLCM这里有一个日志,用于运行您询问的内容。它通过qmake-qt5使用qt4。真奇怪。 – alexandernst 2013-05-06 16:30:11

1

由于Amartel在他的回答中写道,你应该指向正确的qmake的版本(在控制台输入qmake --version检查)

这可能是你的项目已使用了错误的qmake可执行文件和一些文件生成即使您发出nmake清洁或清洁,也不会被删除。

检查清理后源代码树中是否没有Makefile(这些文件通常会包含要使用的qt版本的路径,如果不正确重新生成将指向错误的Qt版本)。

5

如果用户正在运行带有您不希望他使用的版本的qmake,则可以抛出错误。例如:

lessThan(QT_MAJOR_VERSION, 5): error("requires Qt 5") 
相关问题