虚拟机上交叉编译 Qt5 配置

拉灯是我干掉的
原创
发布时间: 2025-06-25 10:46:05 | 阅读数 0收藏数 0评论数 0
封面
在虚拟机上交叉编译Qt,需要在Qt Creator添加编译套件(kits),添加交叉编译需要的Qt库文件以及交叉编译器。本次教程配置如下。
1

下载资源文件

从 附件获取相关文件(文件会实时更新,以实际为准):


复制网盘的文件(交叉编译器、Qt库文件、sysroot文件)到虚拟机系统中,然后解压到指定目录:

# 从网盘获取交叉编译器、Qt库文件、sysroot文件
# 复制文件到虚拟机系统中
# 解压文件交叉编译器,Qt文件,sysroot文件,解压到指定/opt目录下,必须是/opt目录
sudo tar -xf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -C /opt
sudo tar -xzf qt-everywhere-src-5.15.8.tar.gz -C /opt
sudo tar -xzf sysroot_debian10.tar.gz -C /opt

如果是为ubuntu20.04系统,则使用的交叉编译器是aarch64-linux-gnu-gcc 9.4.0,虚拟机中apt工具安装gcc-aarch64-linux-gnu和g++-aarch64-linux-gnu。

2

打开首选项设置界面

虚拟机上打开Qt Creator,点击编译,然后打开 首选项

3

设置Qt版本

点击构建套件,添加Qt Versions,随后设置名称,设置路径 /opt/qt-everywhere-src-5.15.8/host/bin/qmake :

4

添加交叉编译器

添加交叉编译器,添加C/C++交叉编译器,选择路径 /opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin :

5

设置sysroot路径

添加编译套件(名称为Lubancat_rk_debian10),选择前面添加的Qt 版本和交叉编译器,并设置sysroot路径 /opt/sysroot , 顺便为编译套件加一个图标

6

编译Qt程序

打开Qt Creator,选择一个自带Qt例程(示例是analogclock),然后设置工程的编译套件(Lubancat_rk_debian10),设置项目构建目录,点击编译,会在构建目录下生成可执行文件。

7

板卡上运行Qt程序

复制Qt库到板卡,然后设置相应的环境变量,就可以运行程序。 先复制前面编译的Qt程序到板卡,然后简单运行程序(debian10带桌面系统):

# 从网盘获取对应的Qt交叉编译库文件,并复制到板卡系统中,然后解压到/opt目录下
tar -xzf qt-everywhere-src-5.15.8.tar.gz /opt
# 设置环境变量,测试使用xcb插件
LD_LIBRARY_PATH=/opt/qt-everywhere-src-5.15.8/ext/lib ./analogclock -platform xcb
# 设置环境变量,并使用eglfs等等
LD_LIBRARY_PATH=/opt/qt-everywhere-src-5.15.8/ext/lib ./analogclock -platform eglfs


提示

以上部署测试都是通过命令中设置运行环境变量,我们也可以添加到一个shell脚本中,然后运行或者系统配置中(直接添加环境变量到/etc/ld.so.conf,/etc/profile.d/xxx.sh)。

以上只是简单的测试,一些系统运行可能有问题,需要配置环境变量。

另外,板卡使用插件显示时会显示失败导入插件,请导出环境变量 export QT_DEBUG_PLUGINS=1 查看具体的报错原因, 一般而言是缺少某些库,请使用下面命令安装,然后重新运行程序。

# xcb相关
sudo apt update
sudo apt install libx11-dev libx11-xcb-dev libxkbcommon-dev libxkbcommon-x11-dev libxext-dev libxfixes-dev libxcb-xinput0
sudo apt install libxcb-*

# 其他相关(板卡系统不同,可能有些库搜索不到,可以不安装)
sudo apt install libmtdev-dev libinput-dev libts-dev


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载