一、准备工作
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