记录在麒麟V10aarch64/Phytium,FT-2000/4
上编译Qt-5.9.8
系统环境
1 | Linux kylinsec-FT2004 5.4.18-52-generic #41 SMP Wed Mar 2 15:24:07 CST 2022 aarch64 aarch64 aarch64 GNU/Linux |
编译前准备
1、下载源码包
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wget https://download.qt.io/archive/qt/5.9/5.9.8/single/qt-everywhere-opensource-src-5.9.8.tar.xz
xz -d qt-everywhere-opensource-src-5.9.8.tar.xz
tar -xvf qt-everywhere-opensource-src-5.9.8.tar
cd qt-everywhere-opensource-src-5.9.8
vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
根据系统gcc版本替换
vim下执行
:%s/arm-linux-gnueabihf/aarch64-linux-gnu/g
注释
vim qtimageformats/src/3rdparty/libwebp/src/dsp/dsp.h 第72行
//#define WEBP_USE_NEON // Android targets that might support NEON
2、配置需要编译的包集合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
./configure -prefix /usr/local/Qt-5.9 -release -xplatform linux-arm-gnueabi-g++ -opensource -nomake examples -nomake tests -confirm-license -shared -no-iconv -qt-xcb -no-opengl -skip qtlocation
make
make install
如果make install出现以下错误:
出现error: ‘SIOCGSTAMP’ undeclared (first use in this function); did you mean ‘SIOCGARP’
在socketcanbackend.cpp文件中添加#include <linux/sockios.h>
即:
vim qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.cpp
编译过程中还可能出现webp报错的情况,此时执行`./configure`配置时增加不编译`webp`选项,即:`-no-webp`
3、添加Qt环境
如果系统已经存在qt版本,则如下配置:
1
2
3
4
qtchooser -install Qt-5.9 /usr/local/Qt-5.9/bin/qmake
设置系统默认qt版本
export QT_SELECT=Qt-5.9
如果系统未安装过qt,则配置如下:
1
2
3
4
export QTDIR=/usr/local/Qt-5.9
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH