【QT】Ubuntu 交叉编译安装 QT 5.12.7 源码

目录

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

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-all

 

4、运行编译脚本

开始运行编译脚本

./auto-config.sh

配置完毕后,接下来开始编译安装

make -j4 & make install

最终在指定的安装目录下看到如下内容,且动态库文件为 arm 环境

 

参考文章: 

编译脚本参考: 嵌入式Qt | 如何交叉编译Qt模块_qt交叉编译-CSDN博客

./configure 编译选项参考: Qt 源码编译_qt源码编译_书中倦客的博客-CSDN博客

### 安装 Qt 5.12.9 的准备工作 对于 Ubuntu 用户来说,安装特定版本的 Qt 可能会涉及到一些额外的工作,因为官方仓库中的软件包可能不是最新或指定版本。为了确保能够顺利安装 Qt 5.12.9 版本,在开始之前应该先更新系统的包列表并安装必要的构建工具和依赖项。 #### 更新系统包列表与安装基础开发环境 ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential -y ``` 这些命令可以保证拥有最新的包索引以及编译所需的基础工具集[^1]。 ### 下载 Qt 5.12.9 并解压 由于 `apt` 默认源通常不会提供如此具体的旧版次,因此建议通过官方网站或其他可信渠道获取该版本的压缩文件。可以从 Qt 官方网站下载页面找到对应的离线安装器或者直接下载 tarball 文件形式的源码来手动部署。 假设已经获得了适用于 Linux 的 Qt 5.12.9 压缩包(例如 qt-everywhere-src-5.12.9.tar.xz),那么接下来的操作如下: #### 解压并配置路径 ```bash tar xf qt-everywhere-src-5.12.9.tar.xz cd qt-everywhere-src-5.12.9 ./configure -prefix /opt/qt5.12.9 -opensource -confirm-license make -j$(nproc) sudo make install ``` 上述过程将会把 Qt 安装到 `/opt/qt5.12.9/` 路径下,并设置为开源授权模式。注意这里的 `-j$(nproc)` 参数用于加速编译速度,它会让 Make 使用尽可能多的核心来进行并发处理。 ### 设置环境变量以便于使用新安装Qt 为了让终端识别新的 Qt 安装位置,还需要修改 `.bashrc` 或者其他 shell 配置文件加入相应的 PATH 和 LD_LIBRARY_PATH: ```bash echo 'export QTDIR=/opt/qt5.12.9' >> ~/.bashrc echo 'export PATH=$QTDIR/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc ``` 完成以上操作之后就可以正常使用 Qt Creator 来创建基于 Qt 5.12.9 的项目了。如果希望集成图形界面下的 IDE 支持,则可以通过商店下载 QtCreator 应用程序,并按照提示将其指向刚才所安装的自定义 Qt 版本即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值