交叉编译Qt6.5.3(RK3568开发板)

本文详细介绍了如何在Ubuntu 20虚拟机中交叉编译Qt6.5.3以适配RK3568开发板。内容包括下载Qt源码、配置编译环境、安装交叉编译工具、配置CMake文件、编译移植Qt库、设置开发板环境以及测试运行。整个过程遵循Qt官方文档,涉及CMake、Linaro交叉编译器和GLIBC版本匹配等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

外界条件:虚拟机 X86 架构(Ubuntu 20系统64位), 开发板RK3568 ARM 架构(Ubuntu 18系统64位)2GB内存 32GB外存 带GPU。这里开发板如果能用高版本 Ubuntu 尽量用高版本的。

1,在虚拟机中编译Qt6.5.3

这一步,就和平常在自己电脑安装一个 Qt 库一样。

mkdir -p ~/dev/qt-build
cd ~/dev/qt-build
# 运行源码目录下的配置程序
~/Desktop/qt-everywhere-src-6.5.3/configure
cmake --build . --parallel
cmake --install .
# 安装完成后,默认安装在/usr/local目录下。安装完成后,就可以删除构建目录了,节约存储空间。
rm -r ~/dev/qt-build

至此第一步就完成了,参考了Qt官方的文档:Qt for Linux/X11 - Building from Source | Qt 6.6

2,配置开发板及虚拟机,建立sysroot目录

  • 在开发板上,安装相关库。
$ sudo apt update
$ sudo apt full-upgrade
$ sudo reboot
$ sudo apt-get install libboost-all-dev libudev-dev libinput-dev libts-dev libmtdev-dev libjpeg-dev libfontconfig1-dev libssl-dev libdbus-1-dev libglib2.0-dev libxkbcommon-dev libegl1-mesa-dev libgbm-dev libgles2-mesa-dev mesa-common-dev libasound2-dev libpulse-dev gstreamer1.0-omx libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev  gstreamer1.0-alsa libvpx-dev libsrtp2-dev libsnappy-dev libnss3-dev "^libxcb.*" flex bison libxslt-dev ruby gperf libbz2-dev libcups2-dev libatkmm-1.6-dev libxi6 libxcomposite1 libfreetype6-dev libicu-dev libsqlite3-dev libxslt1-dev

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libx11-dev freetds-dev libsqlite3-dev libpq-dev libiodbc2-dev firebird-dev libgst-dev libxext-dev libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync1 libxcb-sync-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev libxi-dev libdrm-dev libxcb-xinerama0 libxcb-xinerama0-dev libatspi2.0-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxss-dev libxtst-dev libpci-dev libcap-dev libxrandr-dev libdirectfb-dev libaudio-dev libxkbcommon-x11-dev
  • 在虚拟机中,安装以下库。
$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get install make build-essential libclang-dev ninja-build gcc git bison python3 gperf pkg-config libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
  • 在虚拟机中构建sysroot目录,后面交叉编译需要用到。
# 要用到rsync命令,也可以用scp命令传文件。
sudo apt install rsync
# 这里我将sysroot目录名字取名为sysroot-gpu,你也可以取别的名字,后面指定路径的时候记得修改一下即可。
mkdir ~/Desktop/sysroot-gpu
cd ~/Desktop/sysroot-gpu
mkdir -p usr/include
mkdir -p usr/lib
mkdir lib
# 将开发板上的库文件传到虚拟机中
# 这里注意填你自己开发板的用户名和ip地址,和ssh命令差不多
rsync -avzS --rsync-path="rsync" --delete user@192.168.137.140:/lib/* lib/
rsync -avzS --rsync-path="rsync" --delete user@192.168.137.140:/usr/include/* usr/include/
rsync -avzS --rsync-path="rsync" --delete user@192.168.137.140:/usr/lib/* usr/lib/
# 安装symlinks工具,看看软链接文件是否链接正确
sudo apt install symlinks
cd ~/Desktop
symlinks -rc sysroot-gpu
# 如果有.so库文件的软链接指定不正确,修改为正确的。其它的不用管。
# 使用 ln -sf 目标库文件 软链接名称,类似下面这样。
gwj@ubuntu:~/Desktop/sysroot-gpu/usr/lib/aarch64-linux-gnu$ ln -sf ../../../lib/aarch64-linux-gnu/libbz2.so.1.0 libbz2.so
gwj@ubuntu:~/Desktop/sysroot-gpu/usr/lib/aarch64-linux-gnu$ ln -sf ../../../lib/aarch64-linux-gnu/libcrypt.so.1 libcrypt.so 

3,下载交叉编译工具

到 linaro 网站上下载交叉编译工具,我下载的是 gcc-linaro-11.3.1-2022.06-x86_64_aarch64-

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值