最近项目接触到国产飞腾服务器,搭载的是我们国家自主的银河麒麟操作系统,系统自带Qt5.6,只有widget那套框架,没有QML也没有QCharts,因此尝试重新编译一个较新和稳定的Qt版本,所以选择了Qt5.9. 在此记录一下, 以便将来再用。Qt源码内的README文档已经把编译安装步骤写得很详细,出了问题第一时间对照文档是否有遗漏或疏忽。
一、 准备工作
1、官网下载Qt源码,Qt Creator源码。
http://download.qt.io/archive/qt/5.9/5.9.2/single/
http://download.qt.io/official_releases/qtcreator/4.5/4.5.0/
2、官网下载zlib库
http://www.zlib.net/
3、确保系统的gcc,g++, python, perl等符合Qt安装要求,具体请参见Qt源码内的README文档
二、编译安装Qt
1、将下载的文件放到/home/kylin/Qt_Source文件夹内
2、解压zlib源码, 进入源码目录,执行以下代码安装。如果系统已经有zlib库, 可以不用执行此步骤
./configure
make & make install
3、解压qt-everywhere-opensource-src-5.9.2源码包,进入解压后的文件夹,
执行./configure -nomake tests nomake examples
若中途报错缺少库依赖, 请参照安装zlib的方式,自行安装缺少的库,虽然银河麒麟的软件仓库匮乏,但基本的东西还是很全面的,实际上我在编译中,就只遇到缺少zlib库。
执行make -j4 进行编译,(-j4为编译时多核优化)
如无意外,编译OK, 然后执行make install安装,默认路径为/usr/local/Qt5.9.2
如需要指定安装路径, 请参照源码路径的README文档设置。
三、编译安装Qt Creator
1、将下载的文件放到/home/kylin/Qt_Source文件夹内
2、解压qt-creator-opensource-src4.5.0,进入源码路径,执行
qmake -r
若提示找不到qmake, 请自行将编译Qt源码时生成的qmake加入环境变量,或者执行 绝对路径/qmake -r,或者将qmake复制到/usr/bin。
3、Qt Creator 编译时带的第三方库botan没有对aarch64编译工具的支持, 在编译过程中会出现一个找不到cpuid.h头文件的错误,参考Qt的官方解决办法https://codereview.qt-project.org/#/c/79728/
特别注意的是, Qt官方的解决办法提供的patch源码补丁并不是支持所有版本的源代码,需要参考补丁修改内容,找到
我们自己使用的版本的源代码相应地方修改, 而不是简单打个补丁就完事了, 有可能补丁根本就没打上。
4、执行make 编译, 请注意这里不要使用多核优化-j选项, 要出错。
5、make install 默认安装, 可执行文件就在源码路径bin文件夹内。
四、编译QML程序测试,运行速度和CPU占用率有点不太理想。没有显卡应该是原因之一。纯Widget好一点。