交叉编译QT

本文详细介绍了如何在RK3399开发板上进行QT5.12.1的交叉编译和移植,包括HOST端的准备工作、设置交叉编译工具链、安装QT以及配置QTCreator,以及开发板端的QT库解压、路径设置和应用程序执行。同时,还提供了QT编译的配置脚本和相关依赖库的安装步骤,最后讨论了如何在开发板上运行QT程序并设置开机自启动。
摘要由CSDN通过智能技术生成

一、准备工作

HOST端

复制 qt-opensource-linux-x64-5.12.1.run 和 qt5.12.1.tar.gz 和 ToolChain-6.3.1.tar.gz 到用户文件夹,我这里用的是文件夹路径为 /home/book/100ask_roc-rk3399-pc/。

开发板端

复制 qt5.12.1.tar.gz 到 /usr/bin/ 文件夹,复制 testrk3399 到 /root 文件夹

二、HOST端

1、解压并设置交叉编译工具链

1.1、解压 ToolChain-6.3.1.tar.gz

解压后放在/home/book/100ask_roc-rk3399-pc/目录下

tar -zxvf ToolChain-6.3.1.tar.gz

1.2、设置交叉编译工具链

vi /etc/profile,添加如下语句

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export PATH=$PATH:/home/book/100ask_roc-rk3399-pc/ToolChain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

执行 source /etc/profile 使其生效

2、安装QT5.12.1软件并设置

2.1、安装 qt-opensource-linux-x64-5.12.1.run

安装选项目前只选择了 Desktop gcc 64-bit 和 Qt Creator 4.8.1

2.2、解压qt5.12.1.tar.gz

解压后放在/home/book/100ask_roc-rk3399-pc/目录下

tar -zxvf qt5.12.1.tar.gz

2.3、配置QT编译工具链

参照下面链接文章 4.配置QtCreator 内容。

https://blog.csdn.net/weixin_44031368/article/details/108076798

2.4、建立简单的QT程序并编译

目前已经编译好了一个测试程序 testrk3399 ,已经复制到开发板文件夹中。

三、开发板端

1、解压并设置对应路径

1.1、解压 ToolChain-6.3.1.tar.gz

解压后放在/usr/bin/目录下

tar -zxvf qt5.12.1.tar.gz

1.2、设置路径

vi /etc/profile,添加如下语句

export QTDIR=/usr/bin/qt5.12.1-arm
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/bin/qt5.12.1-arm/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_FONTDIR=$QTDIR/lib/fonts

执行 source /etc/profile 使其生效

2、执行应用程序

切换到/root目录,执行./testrk3399 即可看到HDMI屏幕显示画面

四、补充:RK3399移植QT

下载并设置交叉编译工具链

sudo apt-get update
sudo apt-get upgrade
sudo apt-cache search aarch64	//查看哪些版本可以安装

sudo vi /etc/profile
增加
export PATH="/usr/bin:$PATH"
增加完成

source /etc/profile
aarch64-linux-gnu-gcc -v	//验证是否安装成功

下载安装交叉编译qt库

tar -xvf qt-everywhere-src-5.12.1.tar.xz
cd qt-everywhere-src-5.12.1

sudo vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf
增加
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts
增加完成

sudo vi auto.sh		//新建的auto.sh为交叉编译自动配置脚本
增加
#!/bin/sh
./configure \
-prefix /usr/bin/qt5.12.1-arm \
-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 \
增加完成
注释:(搜索QT编译./configure参数)
-prefix /usr/bin/qt5.12.1-arm为编译后的安装目录
-release ........... 此选项在编译过程QT会对程序进行优化,在发布软件的时候应该用此选项,是默认选项
-xplatform linux-aarch64-gnu-g++为交叉编译相关选择,我们之前修改的是qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf,需要对应上
-no-xcb要选择,要不然编译会出差,尝试了各种方法也没解决这个问题

sudo chmod 777 auto.sh 
sudo ./auto.sh

sudo make -j4
sudo make install

安装qt-opensource-linux-x64-5.12.0.run

安装库
sudo apt-get install libfontconfig1 libfontconfig1-dev

sudo apt-get install libxrender-dev libxrender1 libxkbcommon-dev libxkbcommon-x11-0 libxkbcommon-x11-dev libxkbcommon0  

sudo apt-get install build-essential

sudo apt-get install libfreetype6 libfreetype6-dev

sudo mkdir /usr/bin/Qt5.12.1
sudo chmod 777 qt-opensource-linux-x64-5.12.0.run
./qt-opensource-linux-x64-5.12.0.run

配置QtCreator增加RK3399的构建套件,需要配置以下

工具->选项->Kits

​ ->编译器

​ ->Qt Versions

​ ->构建套件(Kit)

将交叉编译的Qt库复制到板子上

将/usr/bin/qt5.12.1-arm交叉编译Qt库通过u盘复制到rk3399的/usr/bin目录下

接着将qt程序运行所依赖的相关文件、配置等添加到环境变量中

vi /etc/profile
增加
export QTDIR=/usr/bin/qt5.12.1-arm
export LD_LIBRARY_PATH=/usr/bin/qt5.12.1-arm/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_FONTDIR=/usr/share/fonts/truetype/ubuntu-font-family
增加完成

设置成开机自启动

vi /etc/embedsky_conf
增加
/opt/test &
增加完成

本文用到的工具:

链接:https://pan.baidu.com/s/1t5mZXY0PCBH6sYY79bJW4A
提取码:jvow

参考链接:

https://blog.csdn.net/weixin_44031368/article/details/108076798

https://blog.csdn.net/hezhanran/article/details/101512974

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值