当前位置: 首页 > news >正文

Jetson Orin Nano编译Qt 5.15.3避坑指南:从源码下载到QGC部署全流程

1. 环境准备与源码下载

在Jetson Orin Nano上编译Qt 5.15.3之前,需要做好基础环境配置。Orin Nano搭载的是ARM64架构处理器,操作系统通常为Ubuntu 20.04 LTS版本。建议先执行以下基础命令更新系统:

sudo apt update && sudo apt upgrade -y sudo apt install build-essential git python3 -y

Qt源码获取有两种推荐方式。清华镜像源下载速度较快,适合国内开发者:

wget https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qt/5.15/5.15.3/single/qt-everywhere-opensource-src-5.15.3.tar.xz

官方源则更适合需要验证完整性的场景。下载后解压时有个细节要注意:Orin Nano的存储空间有限,建议在外部SSD或大容量SD卡上操作:

tar -xvf qt-everywhere-opensource-src-5.15.3.tar.xz cd qt-everywhere-opensource-src-5.15.3 mkdir build && cd build

2. 关键编译配置

配置阶段直接影响后续编译成功率。实测有效的配置命令如下:

../configure -prefix $HOME/Qt5.15.3 -opensource -confirm-license \ -release -nomake tests -nomake examples \ -skip qtandroidextras -skip qtmacextras -skip qtwinextras \ -opengl es2 -eglfs -xcb -qpa xcb

几个关键参数说明:

  • -opengl es2:适配Orin Nano的GPU架构
  • -eglfs:嵌入式系统显示支持
  • -xcb:X11窗口系统兼容
  • -skip参数跳过了不必要的模块,节省编译时间

配置完成后建议检查输出日志,确认没有报错后再开始编译。第一次编译建议使用-j4参数控制并行任务数,避免内存耗尽:

make -j4

3. 典型报错解决方案

3.1 assimp库未定义错误

这个经典错误出现在qtquick3d模块中。解决方法不是安装assimp库,而是修改pro文件:

nano qtquick3d/src/plugins/assetimporters/assimp/assimp.pro

将原有内容替换为:

CONFIG += link_pkgconfig PKGCONFIG += assimp

修改后需要清理之前编译的缓存:

make clean

3.2 头文件缺失问题

主要涉及limits等C++标准库头文件。需要手动补全以下文件:

  • qtbase/src/corelib/text/qbytearraymatcher.h
  • qtbase/src/corelib/global/qendian.h
  • qtbase/src/corelib/global/qfloat16.h

在每个文件开头添加:

#include <limits>

建议使用sed命令批量处理:

find . -name "*.h" -type f | xargs grep -L "#include <limits>" | xargs sed -i '1i #include <limits>'

4. 系统部署技巧

编译完成后,将Qt库部署到系统目录需要注意权限问题。推荐的分步操作:

sudo cp -r $HOME/Qt5.15.3/lib/*.so* /usr/local/lib/ sudo ldconfig sudo cp -r $HOME/Qt5.15.3/include/* /usr/local/include/ sudo mkdir -p /usr/local/lib/qt5/plugins sudo cp -r $HOME/Qt5.15.3/plugins/* /usr/local/lib/qt5/plugins/

环境变量配置建议写入~/.bashrc

echo 'export QT_HOME=/usr/local' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

5. QGC编译专项适配

QGC编译需要Qt的私有头文件,这是最容易出错的部分。正确的处理方式是建立符号链接:

sudo ln -s $HOME/Qt5.15.3/include/QtLocation/5.15.3/QtLocation/private /usr/local/include/QtLocation/private sudo ln -s $HOME/Qt5.15.3/include/QtQuick/5.15.3/QtQuick/private /usr/local/include/QtQuick/private

如果遇到qgeomaptype_p.h缺失错误,检查CMakeLists.txt中的包含路径是否正确指向了Qt安装目录下的private头文件。实测有效的解决方法是修改QGC的CMake配置:

include_directories( ${QT_INSTALL_PREFIX}/include/QtLocation/5.15.3/QtLocation/private ${QT_INSTALL_PREFIX}/include/QtQuick/5.15.3/QtQuick/private )

编译QGC时建议使用单独的构建目录,并指定Qt版本路径:

mkdir qgc-build && cd qgc-build cmake .. -DQt5_DIR=$HOME/Qt5.15.3/lib/cmake/Qt5 make -j4
http://www.jsqmd.com/news/498375/

相关文章:

  • 2026AI招聘外包优质服务商推荐榜:AI招聘软件开发、AI招聘软件测试、IT技术人力外包、一站式人力外包、业务流程外包选择指南 - 优质品牌商家
  • 宝塔面板实战:解决Cloudflare CDN引发的521/520错误全攻略
  • Qwen2.5-7B-Instruct真实应用:将会议录音转写稿提炼为行动项清单
  • 从NYU到MegaDepth:盘点RGBD数据集的演进与实战选型指南
  • 2026年本科毕业论文查AI率用什么工具预检?这3个又快又准 - 还在做实验的师兄
  • 【Linux】Orangepi GPIO开发实战:从基础到高级驱动实现
  • 水墨江南模型微信小程序开发:打造个人水墨画创作工具
  • HY-Motion 1.0GPU优化:FlashAttention-2加速注意力计算实测
  • Matlab R2021b窗口编程避坑指南:解决uitextarea的Value属性问题
  • i茅台智能预约系统:解放双手的自动化抢购解决方案
  • 景略JL2XX1系列与RTL8211F在千兆以太网设计中的选型指南
  • 2026年同一篇论文知网和维普AI率差20%?搞懂检测差异再降AI - 还在做实验的师兄
  • QQ群活跃度分析指南:用Python绘制聊天时间热力图和词云
  • i茅台智能预约系统:重构预约体验的技术实践
  • 别再盲目跟风!通达信天量法则(TLFZ)的3个常见使用误区与正确姿势
  • 计算机网络知识在DeOldify分布式部署中的应用:负载均衡与API网关设计
  • mPLUG-Owl3-2B轻量推理部署:从源码编译到wheel包封装的完整CI/CD实践
  • 5分钟搞定Apache IoTDB单机部署:从下载到CLI操作全流程(附避坑指南)
  • 避坑指南:Backtrader数据准备中90%新手会犯的5个错误(以A股为例)
  • Silvaco TCAD新手必看:DeckBuild从安装到跑通第一个例子的完整指南
  • AgentCPM本地研报工具体验:纯离线运行,商业机密数据安全无忧
  • 新能源汽车热管理系统HIL测试实战:从Simscape建模到TMS控制器验证
  • PHPStudy环境下部署Snort IDS的5个关键步骤与避坑指南
  • STM32实战:ThreadX与LVGL嵌入式GUI开发全流程解析
  • 3步实现AI虚拟试衣:从技术原理到商业落地的开源解决方案
  • 【Python】自动化生成AUTOSAR SWC:从Excel到arxml的实践指南
  • 前端加密全攻略:用jsencrypt.js+Base64.js实现数据安全传输(附kkFileView集成示例)
  • CASS数据处理秘籍:如何让Excel坐标秒变DAT展点文件?含编码错误解决方案
  • Qwen2.5-1.5B macOS部署:Qwen2.5-1.5B在M1/M2/M3芯片Mac本地运行
  • DDMA-MIMO雷达从原理到代码:手把手教你用OMP-CS算法处理空带信号(避坑指南)