qt5在linux下搭建交叉编译环境

一、搭建环境

1、ubuntu16.04。
2、qt交叉编译工具库使用的是qt-everywhere-opensource-src-5.9.0.tar.xz,我有使用其他版本编译,但总是有各种问题终止了。
3、 qt-opensource-linux-x64-5.9.0.run下载
4、ARM开发板为RK3399。

二、配置交叉编译工具

我使用的是RK3399厂商出的源码包里包含了的编译工具,但此处我还是讲一下如何自己下载交叉编译工具包。若已经配置好交叉编译工具链,此处可跳过。

1、下载交叉编译工具

gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar,下载地址

2、解压

将此文件复制到你想安装的目录下,此处是复制到/opt 下,然后解压。

sudo tar -vxf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar 

3、 添加环境变量

cd /etc
//打开文件
sudo vim profile
//在文件末尾添加
export PATH="/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH" 
//输入命令,使其生效
souce /etc/profile
//验证是否成功
aarch64-linux-gnu-gcc -v

出现如下,表示安装成功了
在这里插入图片描述

三、交叉编译qt库

接下来就是重点了,讲解如何交叉编译qt库。

1、下载qt

qt-everywhere-opensource-src-5.9.0.tar.xz,下载地址

2、解压

将下载的qt-everywhere-opensource-src-5.9.0.tar.xz压缩包复制到/opt下,然后解压。

sudo tar -xvf qt-everywhere-opensource-src-5.9.0.tar.xz

3、修改配置文件

//修改文件所有者和所属权限,此处doit修改为自己的用户名
sudo chown -R doit:doit qt-everywhere-opensource-src-5.9.0
cd /opt/qt-everywhere-opensource-src-5.9.0/qtbase/mkspecs/linux-aarch64-gnu-g++
//修改文件
vim qmake.conf 

在此文件中修改两处,一处是添加如下内容,另一处是将编译工具修改为自己的路径。
在文件中添加如下内容:

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts

在这里插入图片描述

4、创建auto.sh文件

cd /opt/qt-everywhere-src-5.9.0/
vim  auto.sh

新建的auto.sh为交叉编译自动配置脚本,在其中添加一下内容:

#!/bin/sh
./configure \
-prefix /opt/qt5.9.0 \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-separate-debug-info

其中/opt/qt5.9.0为编译后的安装目录,-xplatform linux-aarch64-gnu-g++为交叉编译相关选择,还记得之前我们修改过/opt/qt-everywhere-opensource-src-5.9.0/qtbase/mkspecs/linux-aarch64-gnu-g++文件夹下的qmake.conf文件吧,前后是有对应的,-no-xcb要选择。

//添加可执行权限
chmod u+x auto.sh 
//执行编译
./auto.sh

接着输入

//此处编译大概需要一个小时
//我在使用qt-everywhere-src-5.10.0.tar.xz版本时
//此过程会提示global/qrandom.cpp:52:26: fatal error: sys/random.h: 没有那个文件或目录
//没有解决掉,只好换了个qt工具库
sudo make -j4
//进行编译,编译完成后输入命令
sudo make install

安装完成后,我们在/opt/qt5.9.0 安装目录中有相应文件出现,表示编译成功。

  • 5
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
搭建 Qt 在 ARM 平台上的交叉编译环境,可以按照以下步骤进行操作: 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 到指定的安装路径。 完成以上步骤后,你就成功搭建Qt 在 ARM 平台上的交叉编译环境。现在你可以使用这个环境来编译运行在 ARM 平台上的 Qt 应用程序了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Victor随笔集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值