Orange Pi4 QT5开发环境搭建:从交叉编译到远程部署全流程解析

张开发
2026/4/12 4:21:22 15 分钟阅读

分享文章

Orange Pi4 QT5开发环境搭建:从交叉编译到远程部署全流程解析
1. 为什么选择Orange Pi4搭建QT5开发环境Orange Pi4作为一款高性能的ARM开发板搭载了四核Cortex-A72处理器性能足以应对大多数嵌入式开发需求。而QT5作为跨平台的C图形用户界面框架在嵌入式领域有着广泛的应用。两者结合可以快速构建功能丰富的嵌入式应用界面。我去年接手一个工业控制项目时就选择了这个组合。当时需要在2个月内完成一个带触摸屏的控制系统开发Orange Pi4的硬件性能加上QT5的开发效率让我顺利完成了项目。这也是为什么我推荐初学者从这个组合入手——硬件够用软件生态完善学习资源丰富。2. 交叉编译工具链配置2.1 获取交叉编译工具Linaro提供的GCC工具链是目前最稳定的选择。我建议下载7.5.0版本这个版本经过长期验证兼容性最好。下载后解压到/home/user目录下sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz解压完成后我习惯将文件夹重命名为更简短的名称sudo mv gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu gcc-aarch64-linux-gnu2.2 配置环境变量环境变量配置是新手最容易出错的地方。我建议直接修改/etc/profile文件sudo gedit /etc/profile在文件末尾添加注意替换为你的实际路径export PATH/home/user/gcc-aarch64-linux-gnu/bin:$PATH保存后执行以下命令使配置生效source /etc/profile验证是否配置成功aarch64-linux-gnu-gcc -v如果看到版本信息输出说明配置正确。这里有个坑要注意如果使用sudo执行命令可能会找不到工具链因为sudo使用的是root的环境变量。解决方法是用sudo su切换到root用户后再执行命令。3. QT5源码编译与安装3.1 获取QT5源码建议使用5.9.1这个LTS版本稳定性有保障。下载后解压tar -xvf qt-everywhere-opensource-src-5.9.1.tar.xz3.2 配置编译选项进入源码目录创建auto.sh配置脚本#!/bin/sh ./configure \ -prefix /home/user/qt5.9.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这里有几个关键参数需要注意-prefix指定安装目录-xplatform必须选择linux-aarch64-gnu-g禁用了一些不需要的模块以加快编译速度3.3 解决常见编译问题编译过程中最常见的两个问题权限问题建议全程使用root用户操作环境变量问题如果遇到编译器找不到的错误可以临时导出PATHexport PATH$PATH:/home/user/gcc-aarch64-linux-gnu/bin编译命令make -j4 # 根据CPU核心数调整并行编译任务数 make install编译时间较长我的i7处理器大概需要2小时。建议在晚上开始编译第二天早上就能完成。4. QT Creator环境配置4.1 安装QT Creator从官网下载5.9.1版本的安装包直接运行./qt-opensource-linux-x64-5.9.1.run安装时建议选择所有组件特别是Debugging Tools对后期调试很有帮助。4.2 配置交叉编译工具链打开QT Creator后按以下步骤配置工具→选项→构建和运行编译器标签页手动添加GCC和G路径指向交叉编译工具的bin目录QT版本标签页添加刚才编译的QT版本qmake路径为安装目录下的bin/qmake构建套件将编译器和QT版本组合成一个套件这里有个实用技巧在构建和运行的构建环境中添加以下变量可以避免很多奇怪的错误PATH/home/user/gcc-aarch64-linux-gnu/bin:$PATH5. 部署到Orange Pi4开发板5.1 打包QT库将编译好的QT库打包tar -zcvf qt5.9.1.tar.gz qt5.9.1-arm然后通过SCP传输到开发板scp qt5.9.1.tar.gz orangepi192.168.1.100:/home/orangepi5.2 配置开发板环境在开发板上解压并配置环境变量tar -zxvf qt5.9.1.tar.gz sudo vi /etc/profile添加以下内容注意修改路径export QTEDIR/home/orangepi/qt5.9.1-arm/ export LD_LIBRARY_PATH/home/orangepi/qt5.9.1-arm/lib:$LD_LIBRARY_PATH export QT_QPA_PLATFORM_PLUGIN_PATH$QTEDIR/plugins export QT_QPA_PLATFORMlinuxfb export QT_QPA_FONTDIR/usr/share/fonts/truetype/droid保存后执行source /etc/profile6. 常见问题解决方案6.1 库文件找不到问题如果运行时提示找不到.so文件解决方法确认LD_LIBRARY_PATH设置正确将库路径添加到/etc/ld.so.conf执行sudo ldconfig更新缓存6.2 字体显示问题中文乱码通常是因为缺少中文字体sudo apt install ttf-wqy-zenhei然后在/etc/profile中设置正确的字体路径export QT_QPA_FONTDIR/usr/share/fonts/truetype/wqy6.3 界面显示异常如果界面显示在tty而不是屏幕上可以通过以下命令切换CtrlAltF1 # 切换到tty1 CtrlAltF7 # 切换回图形界面对于显示DPI问题可以调整QT的显示参数export QT_QPA_PLATFORMlinuxfb:fb/dev/fb0:size800x480:mmsize154x86:offset0x07. 实际项目经验分享在最近的一个智能家居控制面板项目中我遇到了几个值得分享的问题触摸屏校准QT5默认的触摸事件处理需要额外配置建议使用tslib库来处理触摸输入开机自启动编写systemd服务单元文件是最可靠的方式内存优化禁用不需要的QT模块可以显著减少内存占用一个实用的调试技巧在开发板上运行QT程序时添加-platform参数可以指定不同的显示后端./myapp -platform linuxfb # 帧缓冲 ./myapp -platform eglfs # EGL全屏 ./myapp -platform xcb # X11窗口

更多文章