一般linux下配置Qt4.8.7的环境是下载下源码,然后configure、make、make install安装,但是deepin20或uos(下面只说deepin20,两个系统情况是一样的)使用的gcc版本是8.3,这种高版本的gcc情况下,按上面的办法直接编译Qt4.8.7的源码是编译不通的。通过联系了uos的工程师,得到了另一种安装办法。
1、修改/etc/apt/sources.list源文件
deepin20原/etc/apt/sources.list的原内容如下图1所示,只有一行deb开头的内容有效,这个只是提供了apt工具下载包的源,却没有提供下载源码的源,只需要将deb开头的内容复制一下,另起一行,并将deb修改成deb-src即可,修改后的sources.list内容如图2所示:
图1 sources.list文件的原内容
图2 sources.list文件修改后的内容
然后运行sudo apt update 指令时上面修改的源生效
2、准备工作
sudo apt build-dep qt4-x11安装编译Qt4.8.7的依赖
sudo apt install devscripts 安装dpkg-buildpackage指令,后面需要使用
3、下载Qt4.8.7的源码
然后找一个空的目录,运行apt source qt4-x11 指令下载Qt4.8.7的源码,源码下载完成的最后一句会报一个权限不够的错误,不用管
4、编译Qt4.8.7的源码
源码下载完成后目录结构如图3所示,在终端中进入qt4-x11-4.8.7+dfsg.1目录,运行dpkg-buildpackage -sa -us -uc -j4 指令编译源码
图3 Qt4.8.7源码下载完成后的目录结构
5、安装Qt4.8.7
上面指令完成后,会在qt4-x11-4.8.7+dfsg.1同级目录下生成很多deb包,如图4所示,可以根据自己的需要选择哪些deb包进行安装,而我这边直接运行sudo dpkg -i ./*.deb 将所有的deb包都安装了,安装过程中可能有部分deb包会报错,不用理会。安装完成后qmake-qt4会出现在/usr/bin中了,在QtCreator中配置即可
图4 生成的deb包