【一、搭建通用Arm平台的QT交叉编译环境】

前言

为实现目标嵌入式平台能够正常运行Qt程序,则需要在目标平台上部署QT运行环境。

准备

  1. Ubuntu系统,本文使用的是20.04版本
  2. arm平台通用交叉编译工具链
  3. QT源码

一、下载arm平台交叉编译工具链

1.下载工具链

点击链接https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabi/,选择下图中标识的文件进行下载。在这里插入图片描述

2.解压到交叉编译平台(Ubuntu)

通过共享文件夹或者FileZila将该压缩文件传输到Ubuntu,并解压。

3.配置环境变量

(1)编辑.bashrc文件
sudo vi ~/.bashrc
(2)添加路径
export PATH=/home/anmo/QtPorting/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:$PATH
在这里插入图片描述

二、下载QT源码(版本与交叉编译工具链版本保持一致)

点击链接https://download.qt.io/archive/qt/5.12/5.12.9/single/,跳转到QT官网下载中心进行下载,本文以5.12.9版本的QT源码为例(如需要其他版本,点击”Parent Directory“返回上级目录自行选择)。
点击下载图中红色框框标识的压缩文件(注意可能由于平台差异,zip类型不适用于Ubuntu系统,所以请勿下载zip类型)。下载完毕之后可通过共享文件夹,或者FileZila将压缩包传输到Ubuntu。
在这里插入图片描述

三、下载并编译tslib库

该库为ArmQt的屏幕触摸库

1. 获取 tslib

获取tslib 的源码, git 地址为 https://github.com/kergoth/tslib 。 tslib 源码已经放到开发板光
盘中 路径为: 开发板光盘 A 基础资料 1 、例程源码 7 、第三方库源码 tslib 1.21.tar.bz2 。将压缩包发送到 Ubuntu 中并解压至Ubuntu 虚拟机目录下,将其解压。

2. 编译 tslib

编译 tslib生成Makefile ,还需要安装以下软件 。

sudo apt get update
sudo apt get install autoconf automake libtool

执行autogen.sh 生成 Makefile ,以编译源码。

3. 生成 Makefile

执行下面的指令,指令会检查编译器等是否会工作。 ,如下图。

./configure --host= arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes --cache-file=arm -linux.cache -prefix=/home/用户名/tslib-master/arm-tslib

ps:指定tslib编译输出路径-prefix=/home/用户名/tslib-master/arm-tslib

四、配置QT源码编译工具链与编译QT源码

1. 修改qmak.conf

在Ubuntu解压之后,进入qtbase/mkspecd/linux-arm-gnueabi-g++路径,并编辑qmake.conf
在这里插入图片描述
更改编译工具链名称
在这里插入图片描述

2.生成qmake编译文件

(1)在qt源码主目录下,新建配置脚本autoconfigure.sh,添加如下内容。

./configure -prefix /home/用户名/qt-everywhere-src-5.12.9/arm-qt \
-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 \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-I/home/用户名/tslib-1.21/arm-tslib/include \
-L/home/用户名/tslib-1.21/arm-tslib/lib \
-recheck-all

(2)添加权限

sudo chmod 755 ./autoconfigure.sh

(3)执行./a等待创建qmake
在这里插入图片描述

(4)输入o,表示开源版本
在这里插入图片描述

(5)输入y,接受许可
在这里插入图片描述

(6)配置完成
在这里插入图片描述

五、编译QT源码

(1)执行make -j 12,进行编译
注意请关闭当前终端窗口,重新打开一个终端窗口,为了避免在当前使用了sudo或者root用户,而在编译时出现权限访问的问题,导致编译错误
(2)最后执行make install,会在qt源码主目录下生成编译后的文件夹,该文件夹名称为autoconfigure.sh指定的文件夹名称一致。

  • 2
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
搭建 QtARM 平台上的交叉编译环境,可以按照以下步骤进行操作: 1. 安装交叉编译工具链:首先,你需要安装适用于 ARM 平台交叉编译工具链。这个工具链包括编译器、链接器和其他必要的工具。你可以从 ARM 官方网站或者硬件供应商的官方网站上下载适用于你的平台的工具链。 2. 设置环境变量:将交叉编译工具链的路径添加到系统的 PATH 环境变量中,以便在命令行中可以直接使用交叉编译工具。例如,在 Linux 系统中,可以通过编辑 ~/.bashrc 文件,并在其中添加以下行来设置环境变量: ``` export PATH=/path/to/cross-compiler/bin:$PATH ``` 其中,`/path/to/cross-compiler` 是你安装的交叉编译工具链的路径。 3. 下载 Qt 源代码:在 Qt 官方网站上下载适用于 ARM 平台Qt 源代码包。确保选择与你的交叉编译工具链兼容的版本。 4. 解压源代码:将下载的源代码包解压到一个目录中。 5. 配置 Qt 编译选项:在解压后的源代码目录中打开一个命令行终端,执行以下命令来配置 Qt 编译选项: ``` ./configure -prefix /path/to/qt/installation -xplatform linux-arm-gnueabi-g++ -release -opensource -confirm-license ``` 其中,`/path/to/qt/installation` 是你希望 Qt 安装到的目标路径。`linux-arm-gnueabi-g++` 是交叉编译工具链的前缀,根据你的工具链名称进行相应的替换。 6. 编译 Qt:配置完成后,执行 `make` 命令来开始编译 Qt。这个过程可能需要一些时间,取决于你的系统性能和编译选项。 7. 安装 Qt:编译完成后,执行 `make install` 命令来安装 Qt 到指定的安装路径。 完成以上步骤后,你就成功搭建QtARM 平台上的交叉编译环境。现在你可以使用这个环境来编译运行在 ARM 平台上的 Qt 应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值