Qt学习之路【4】:qmake:syntax expecting ")")

来源:互联网 发布:iphone7 itunes mac 编辑:程序博客网 时间:2024/06/05 17:59

★问题描述

linux平台下安装Qt4.8.6的库。将qt-everywhere-opensource-src-4.8.6.tar.gz解压后,进入该目录下,开始配置Qt,但是一段时间后报错,如图所示:


通过在qt-everywhere-opensource-src-4.8.6根目录下的configure脚本上添加打印信息可以知道Qt配置阶段会到根目录下的config.tests/unix/目录下去执行。但是从图中的信息可以看出没有发现makefile,所以无法编译出可执行文件,这样configure检测不到SQLite2、TDS、ICU等才会出现 "***disabled",那么到底是什么原因导致这个问题呢?

★问题原因

当我们安装Qt库的时候,第一步需要配置(或者说是裁剪)配置的时候会指定一些参数列表以及平台等,运行configure之后,首先做的就是编译出qmake,后面才会进入到config.tests/unix/目录下,通过qmake生成Makefile文件。那么既然没有生成Makefile文件肯定是qmake这里出了问题。我到qt-everywhere-opensource-src-4.8.6/bin下面找到了编译出来的qmake。之后在命令行下,进入到了config.tests/unix/floatmath目录下,然后输入qma 通过命令补全功能显示出qmake,然后通过qmake floatmath.pro成功生成了Makefile文件,打开这个Makefile文件之后却发现生成这个Makefile文件的qmake竟然不是Qt4.8.6中编译出来的,看样子是被前些日子安装的Qt4.8.5库中的qmake干扰了。将Qt4.8.5删除之后,重新配置,结果还是出现一样的错误。然后,在命令行下手动输入Qt4.8.6下的qmake路径,想通过这种方式再次生成 floatmath的Makefile,结果却报错:qmake: cannot execute binary file。也就是说qmake不能再PC机上执行,到了这里我才意识到这个qmake是在arm使用的交叉编译工具链下编译的,当然不能在PC机上运行,这也是出现上面问题的原因。

★解决办法

1.可以先使用PC机的g++生成qmake,然后在configure(没有验证)

2.在Qt的配置参数中添加了一个参数-platform qws/linux-x86-g++ 


0 0