目录
1、下载 QT 源码包
2、搭建安装环境(下载依赖库)
3、创建QT源码编译脚本
4、运行编译脚本
1、下载 QT 源码包QT5.12.7源码下载地址: download | QT 5.12.7
选择任意一种下载即可,适用于 Windows 和 Linux 环境
这里选择的是.tar.xz 类型,上传到 Linux 环境,新建一个 qt-arm目录,然后将压缩包保存到 qt-arm 目录下,并解压。
tar xf qt-everywhere-src-5.12.7.tar.xz 2、搭建安装环境(下载依赖库) sudo apt-get updatesudo apt-get install libxcb-xinerama0-dev# sudo apt-get install python 会安装失败sudo apt-get install build-essential perl git python3# 为了支持 -qt-xcb 选项所需的库sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev可能在make install 的时候会出现找不到 python 的问题,因为直接下载 python 失败,所以这里下载的是 python3,需要在 /bin 目录下创建一个软链接名为 python
cd /binsudo ln -s python3 python 3、创建QT源码编译脚本由于编译 QT 库的选项较多,这里推荐使用脚本编译,在解压后的 qt-everywhere-src-5.12.7 目录下创建一个脚本文件 auto-config.sh并赋予可执行权限,基本步骤如下:
touch auto-config.sh # 创建脚本文件chmod a+x auto-config.sh # 赋予脚本可执行权限auto-config.sh 脚本文件的内容如下。大部分无需变动,少部分内容需要变动
-prefix:指定QT库的安装目录-tslib:使用 tslib 库(支持触屏事件),如果使用了该选项需额外添加如下两个选项 -I: tslib 库的头文件目录-L: tslib 库的库文件目录注意: 如果使用 tslib 库,需要先对 tslib 库进行交叉编译
#! /bin/sh./configure -prefix /home/gzx/tool/qt-arm-build \-opensource \-confirm-license \-release \-strip \-shared \-xplatform linux-arm-gnueabi-g++ \-optimized-qmake \-c++std c++11 \--rpath=no \-pch \-skip qt3d \-skip qtactiveqt \-skip qtandroidextras \-skip qtcanvas3d \-skip qtconnectivity \-skip qtdatavis3d \-skip qtdoc \-skip qtgamepad \-skip qtlocation \-skip qtmacextras \-skip qtnetworkauth \-skip qtpurchasing \-skip qtremoteobjects \-skip qtscript \-skip qtscxml \-skip qtsensors \-skip qtspeech \-skip qtsvg \-skip qttools \-skip qttranslations \-skip qtwayland \-skip qtwebengine \-skip qtwebview \-skip qtwinextras \-skip qtx11extras \-skip qtxmlpatterns \-make libs \-make examples \-nomake tools -nomake tests \-gui \-widgets \-dbus-runtime \--glib=no \--iconv=no \--pcre=qt \--zlib=qt \-no-openssl \--freetype=qt \--harfbuzz=qt \-no-opengl \-linuxfb \--xcb=no \-tslib \-I/home/gzx/tool/tslib/tslib-master-build/include \-L/home/gzx/tool/tslib/tslib-master-build/lib \--libpng=qt \--libjpeg=qt \--sqlite=qt \-plugin-sql-sqlite \-recheck-all4、运行编译脚本
开始运行编译脚本
./auto-config.sh配置完毕后,接下来开始编译安装
make -j4 & make install最终在指定的安装目录下看到如下内容,且动态库文件为 arm 环境
参考文章:
编译脚本参考: 嵌入式Qt | 如何交叉编译Qt模块_qt交叉编译-CSDN博客
./configure 编译选项参考: Qt 源码编译_qt源码编译_书中倦客的博客-CSDN博客