目录
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

- sudo apt-get update
- sudo 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 /bin
- sudo ln -s python3 python
由于编译 QT 库的选项较多,这里推荐使用脚本编译,在解压后的 qt-everywhere-src-5.12.7 目录下创建一个脚本文件 auto-config.sh并赋予可执行权限,基本步骤如下:
- touch auto-config.sh # 创建脚本文件
- chmod a+x auto-config.sh # 赋予脚本可执行权限
auto-config.sh 脚本文件的内容如下。大部分无需变动,少部分内容需要变动
注意: 如果使用 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-all
开始运行编译脚本
./auto-config.sh
配置完毕后,接下来开始编译安装
make -j4 & make install
最终在指定的安装目录下看到如下内容,且动态库文件为 arm 环境
![]()
![]()
参考文章:
编译脚本参考: 嵌入式Qt | 如何交叉编译Qt模块_qt交叉编译-CSDN博客
./configure 编译选项参考: Qt 源码编译_qt源码编译_书中倦客的博客-CSDN博客