"); //-->
Qt是基于C++ 的跨平台开源应用程序开发框架,专注于图形用户界面和非GUI程序的构建。它提供丰富的GUI控件库和高级功能模块(如网络通信、数据库访问、多媒体处理),并采用独特的信号与槽机制实现高效组件通信。支持OpenGL、Vulkan等图形接口,以及针对嵌入式系统的EGLFS无窗口模式和LinuxFB帧缓冲等,开发者可根据目标平台选择灵活的渲染策略。本文基于触觉智能RK3506星闪开发板Ubuntu系统进行演示,配套RK3506核心板(3核A7@1.5GHz+M0@200MHz多核异构)宽温级59元/工业级68元,一片也是含税批量价。
Ubuntu SDK安装与环境搭建
SDK安装
网盘下载路径:Linux>4.软件资料>QT-SDK/Ubuntu
资料链接请进入触觉智能官网,或联系客服13423856106获取。
注意:
1. QT-SDK 采用交叉编译,所以要在 X86_64 电脑上使用 SDK,不要将 SDK 下载到板子上。
2. 编译环境请使用 Ubuntu22.04(真机或 docker 容器),如果使用其他版本可能导致编译出错。
3. 不要在虚拟机共享文件夹以及非英文目录存放、解压QT-SDK。
下载SDK后,首先校验MD5值,命令如下:
$ md5sum rk3506-ubuntu22_qt5-sdk.tar.gz
解压QT-SDK,命令如下:
$ sudo tar -zxvf rk3506-ubuntu22_qt5-sdk.tar.gz -C ./
交叉编译环境搭建
进入qt sdk目录下,执行install_sdk.sh脚本,进行安装和搭建交叉编译环境,具体如下:
$ cd ./rk3506-ubuntu22_qt5-sdk
$ sudo ./install_sdk.sh
$ ./env.sh
$ source ~/.bashrc
搭建环境后,查看qmake版本和交叉编译工具链版本:
$ arm-none-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/home/industio/evb3506/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin/../libexec/gcc/arm-none-linux-gnueabihf/11.3.1/lto-wrapper
Target: arm-none-linux-gnueabihf
Configured with: /data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/configure --target=arm-none-linux-gnueabihf --prefix= --with-sysroot=/arm-none-linux-gnueabihf/libc --with-build-sysroot=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/install//arm-none-linux-gnueabihf/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/host-tools --with-mpfr=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/host-tools --with-mpc=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/host-tools --with-isl=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/host-tools --with-arch=armv7-a --with-fpu=neon --with-float=hard --with-mode=thumb --with-arch=armv7-a --with-pkgversion='Arm GNU Toolchain 11.3.Rel1'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)
$ qmake -v
QMake version 3.1
Using Qt version 5.15.8 in /opt/rk3506/rk3506_ubuntu22_5.15/ext/lib
注意:根据安装路径的不同,导致qmake和arm-none-linux-gnueabihf-gcc的路径也是不同的。
Qt交叉编译
Qt源码demo
将Qt demo 解压到当前路径下,命令如下:
$ mkdir -p ./qt-demo && tar -xvf moveblocks.tar.gz -C ./qt-demo
$ cd qt-demo
$ ls
main.cpp moveblocks.pro
交叉编译
命令如下:
$ qmake ./
$ make
$ make install
$ ls
main.cpp Makefile moveblocks moveblocks.pro
由此可见编译后生成moveblocks可执行程序,可以通过ssh等方式将可执行程序传到开发板中运行。
Qt验证
将demo传到开发板上,命令如下:
$ adb push Z:\moveblocks /tmp
运行demo,命令如下:
$ chmod a+x /tmp/moveblocks
$ /tmp/moveblocks
结果展示:
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。