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

Ubuntu 18.04下Petalinux 2021.2 SDK编译遇坑记:手把手教你解决Qt组件和assimp报错

Ubuntu 18.04下Petalinux 2021.2 SDK编译实战Qt与assimp报错深度解析在嵌入式Linux开发领域Xilinx的Petalinux工具链为开发者提供了从硬件到软件的完整解决方案。然而当我们在Ubuntu 18.04环境下使用Petalinux 2021.2版本构建SDK时经常会遇到一些棘手的编译错误特别是与Qt组件和assimp库相关的问题。本文将从一个真实的项目案例出发带你一步步解决这些编译难题。1. 环境准备与问题初现在开始之前我们需要确保基础环境配置正确。以下是我的开发环境配置操作系统Ubuntu 18.04.6 LTS (Bionic Beaver)开发工具Vivado 2021.2Petalinux 2021.2Vitis 2021.2硬件平台Xilinx AXU3EG开发板提示建议使用官方推荐的Ubuntu 18.04版本避免因系统版本差异导致的不兼容问题。安装完基础环境后执行petalinux-build --sdk命令开始构建SDK。不久后第一个错误出现了ERROR: qt3d-5.15.2gitAUTOINC5e8a2a3b6d-r0 do_fetch: Fetcher failure for URL: git://code.qt.io/qt/qt3d.git;protocolgit. Unable to fetch URL from any source.紧接着类似的错误也出现在其他Qt组件上ERROR: qtquickcontrols2-5.15.2gitAUTOINC5e8a2a3b6d-r0 do_fetch: Fetcher failure ERROR: qtserialbus-5.15.2gitAUTOINC5e8a2a3b6d-r0 do_fetch: Fetcher failure2. Qt组件报错分析与解决方案2.1 问题根源探究这些Qt组件报错的共同特点是无法从代码仓库获取源代码。经过分析主要原因有网络访问限制某些地区的网络环境可能无法直接访问Qt的官方代码仓库哈希值不匹配源代码的校验和与预期值不符协议变更Git仓库的访问协议可能发生了变化2.2 解决方案一修改bb文件我们可以直接修改对应的bb文件来解决问题。以qt3d为例# 定位到bb文件 cd petalinux-project/components/yocto/layers/meta-qt5/recipes-qt/qt5 vi qt3d_git.bb在文件中找到SRC_URI部分修改为SRC_URI git://github.com/qt/qt3d.git;branch5.15;protocolhttps同时更新SRCREV为最新的提交IDSRCREV 5e8a2a3b6d9f2a9af4c8b8c3c769f6cc1b6aaf7e2.3 解决方案二使用bbappend文件更优雅的方式是使用bbappend文件覆盖原配置这样在Petalinux升级时不会丢失修改创建自定义层如果尚未创建petalinux-create -t apps --template install -n meta-custom --enable在project-spec/meta-user/recipes-qt/qt5/下创建qt3d_%.bbappend文件FILESEXTRAPATHS_prepend : ${THISDIR}/${PN}: SRC_URI git://github.com/qt/qt3d.git;branch5.15;protocolhttps SRCREV 5e8a2a3b6d9f2a9af4c8b8c3c769f6cc1b6aaf7e对其他Qt组件重复上述步骤2.4 解决方案对比方法优点缺点适用场景直接修改bb文件简单直接升级Petalinux时会丢失修改临时解决方案使用bbappend升级友好可维护性强需要创建自定义层长期项目3. assimp库编译失败问题3.1 错误现象分析解决了Qt组件问题后又遇到了assimp库的编译错误ERROR: assimp-5.0.1-r0 do_compile: oe_runmake failed ERROR: Logfile of failure stored in: /build/tmp/work/aarch64-xilinx-linux/assimp/5.0.1-r0/temp/log.do_compile.12345查看详细日志发现fatal error: src/3rdparty/assimp/src/code/Common/Assimp.cpp: No such file or directory3.2 问题诊断步骤检查文件是否存在find /build -name Assimp.cpp如果文件不存在尝试重新获取源码petalinux-build -c assimp -x cleansstate petalinux-build -c assimp -c fetch3.3 手动解决方案如果自动获取失败可以手动下载源码克隆官方仓库git clone https://github.com/assimp/assimp.git cd assimp git checkout v5.0.1 # 确保版本匹配将源码复制到正确位置cp -r assimp/src /build/tmp/work/aarch64-xilinx-linux/assimp/5.0.1-r0/git/src/3rdparty/assimp/修改bb文件SRC_URI git://github.com/assimp/assimp.git;protocolhttps;branchmaster SRCREV a0c0a0c0a0c0a0c0a0c0a0c0a0c0a0c0a0c0a0c0 # 替换为实际commit ID4. 验证与后续步骤完成上述修改后重新启动构建过程petalinux-build --sdk构建成功后可以生成SDK安装包petalinux-package --sysroot注意在部署到目标板前建议先在QEMU环境中测试新构建的镜像。在实际项目中我发现这些解决方案能够稳定地解决大部分编译问题。特别是使用bbappend文件的方法不仅解决了当前问题还为未来的项目维护提供了便利。

相关文章:

Ubuntu 18.04下Petalinux 2021.2 SDK编译遇坑记:手把手教你解决Qt组件和assimp报错

Ubuntu 18.04下Petalinux 2021.2 SDK编译实战:Qt与assimp报错深度解析 在嵌入式Linux开发领域,Xilinx的Petalinux工具链为开发者提供了从硬件到软件的完整解决方案。然而,当我们在Ubuntu 18.04环境下使用Petalinux 2021.2版本构建SDK时&…...

Zotero-SciPDF:3分钟解决文献下载难题的智能科研助手

Zotero-SciPDF:3分钟解决文献下载难题的智能科研助手 【免费下载链接】zotero-scipdf Download PDF from Sci-Hub automatically For Zotero7 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-scipdf 还在为找不到学术论文PDF而烦恼吗?每天花…...

PDFMathTranslate:科研工作者的学术论文翻译神器,完美保留公式排版

PDFMathTranslate:科研工作者的学术论文翻译神器,完美保留公式排版 【免费下载链接】PDFMathTranslate PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/…...

【DeepSeek】引导加载程序与系统组件的安全级别分析

引导加载程序与系统组件的安全级别分析 1. 概述 本文档详细分析了ARM架构下,从系统加电到应用程序运行的各个阶段所运行的异常级别(Exception Levels, EL)。包括Trusted Firmware-A (TF-A) 的各个引导阶段、U-Boot、操作系统内核以及应用程序…...

3步解决Windows 11系统臃肿问题:Win11Debloat优化指南

3步解决Windows 11系统臃肿问题:Win11Debloat优化指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cu…...

手把手教你用LD驱动器(激光二极管驱动板)搭建一个简易激光器原型

从零搭建激光器原型:LD驱动板实战指南 激光技术早已从实验室走向日常生活,无论是激光雕刻、测距仪还是医疗设备,都离不开核心的激光发射模块。对于硬件爱好者而言,亲手搭建一个可控激光器不仅是理解光电原理的绝佳途径&#xff0c…...

别再乱删注册表了!用InstallCleanup.exe彻底卸载VS2019的保姆级教程

彻底告别VS2019残留问题:InstallCleanup.exe专业卸载指南 每次重装Visual Studio时,你是否经历过安装失败、组件冲突或莫名其妙的报错?这些问题的罪魁祸首往往是前一次卸载不彻底留下的"幽灵文件"。许多开发者习惯直接删除安装目录…...

Pyfa终极指南:快速掌握EVE Online舰船配置工具

Pyfa终极指南:快速掌握EVE Online舰船配置工具 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa Pyfa是一款专为EVE Online玩家设计的免费开源舰船配置助手&…...

从零到一:用AXI DataMover在Zynq MPSoC上实现高效DMA传输(附Vitis HLS驱动示例)

从零到一:用AXI DataMover在Zynq MPSoC上实现高效DMA传输(附Vitis HLS驱动示例) 在异构计算架构中,数据搬运效率往往成为系统性能的瓶颈。Xilinx Zynq UltraScale MPSoC作为典型的异构计算平台,其PL(可编程…...

从零构建高性能Switch模拟环境:Ryujinx进阶配置完全指南

从零构建高性能Switch模拟环境:Ryujinx进阶配置完全指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 作为一款用C#编写的开源Nintendo Switch模拟器,Ryujinx…...

嵌入式LVGL实战:手把手教你用Spinner控件打造智能设备‘呼吸感’状态提示

嵌入式LVGL实战:用Spinner控件设计智能设备的呼吸感状态提示 在智能咖啡机完成研磨的等待过程中,那个缓缓转动的弧形进度指示器,远比冰冷的百分比数字更能缓解用户的焦虑——这就是动态视觉反馈的魔力。作为嵌入式设备与用户对话的第一界面&a…...

3个超实用技巧:Snap.Hutao让你告别原神数据管理烦恼

3个超实用技巧:Snap.Hutao让你告别原神数据管理烦恼 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao…...

终极Win11系统优化指南:深入解析Win11Debloat架构与技术实现

终极Win11系统优化指南:深入解析Win11Debloat架构与技术实现 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

别再让LED捣乱!STM32/GD32上LCD驱动编写的引脚保护避坑指南

嵌入式开发实战:多设备GPIO冲突的深度防御策略 在资源受限的MCU开发中,GPIO引脚复用引发的设备冲突堪称"经典翻车现场"。我曾亲眼见证一个智能家居项目因为LED指示灯干扰温湿度传感器数据,导致空调在38℃高温天疯狂制热——而这一切…...

CIC滤波器设计避坑指南:如何平衡通带衰减与旁瓣抑制?

CIC滤波器设计避坑指南:如何平衡通带衰减与旁瓣抑制? 在数字信号处理领域,CIC(Cascaded Integrator Comb)滤波器因其结构简单、无需乘法器、适合高速处理等优势,已成为多速率信号处理系统的首选方案。然而&…...

3分钟快速掌握WindowResizer:终极免费窗口尺寸强制调整工具

3分钟快速掌握WindowResizer:终极免费窗口尺寸强制调整工具 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些无法拖拽大小的应用程序窗口而烦恼吗&#xff1f…...

手把手教你用STM32F103C8T6和ESP8266搭建温室监控(附原子云配置避坑指南)

从零构建STM32ESP8266温室监控系统的实战指南 项目背景与核心价值 在智慧农业和家庭种植场景中,环境参数的实时监控一直是刚需。传统人工记录方式效率低下,而市面上的成品监控设备往往价格昂贵且扩展性有限。基于STM32F103C8T6和ESP8266的DIY方案&#x…...

JavaQuestPlayer:告别QSP游戏运行困扰,开启跨平台游戏新体验

JavaQuestPlayer:告别QSP游戏运行困扰,开启跨平台游戏新体验 【免费下载链接】JavaQuestPlayer 项目地址: https://gitcode.com/gh_mirrors/ja/JavaQuestPlayer 你是否曾经因为找不到合适的QSP游戏播放器而烦恼?或者因为操作系统限制…...

Adobe Illustrator脚本终极指南:30个脚本让你的设计效率提升300%

Adobe Illustrator脚本终极指南:30个脚本让你的设计效率提升300% 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 还在为重复的Illustrator操作而烦恼吗?面对…...

告别搜狗输入法后,如何在Ubuntu 16.04上快速配置ibus-pinyin或fcitx-sunpinyin

Ubuntu 16.04中文输入法深度配置指南:从框架选择到效率优化 在Linux桌面环境中,中文输入体验一直是用户关注的焦点。当Ubuntu 16.04用户告别第三方输入法后,系统自带的输入法框架往往能提供更稳定、更轻量的解决方案。本文将深入探讨如何在Ub…...

避坑指南:爬取88tingshu.com等听书网站音频时,你可能会遇到的3个反爬点及解决方案

听书网站音频爬取实战:破解三大反爬机制的深度指南 引言:当常规爬虫遇上听书网站 最近帮朋友抓取某听书网站的有声小说时,发现事情并不简单。本以为像普通网页一样直接解析HTML就能获取音频链接,结果遭遇了各种"花式拦截&q…...

用DAC0832和汇编语言生成波形:一个微机接口实验的保姆级复盘(附完整代码)

用DAC0832和汇编语言生成波形:从硬件连调到代码优化的全流程实战 记得第一次接触DAC0832芯片时,面对密密麻麻的引脚和晦涩的时序图,我完全不知道从何下手。直到在实验室熬了三个通宵,烧坏两块芯片后,才真正理解数模转换…...

独立游戏开发者的音频救星:零代码用FMOD为Unity游戏添加动态背景音乐与交互音效

独立游戏开发者的音频救星:零代码用FMOD为Unity游戏添加动态背景音乐与交互音效 当你在深夜调试游戏时,是否曾被突如其来的静默打断沉浸感?或是发现精心设计的战斗场景因为单调重复的背景音乐而失去张力?作为独立开发者&#xff…...

Cursor怎么用?2026零基础入门教程|5步学会AI编程IDE核心功能

摘要 本文解决软件开发者和 AI 应用开发者在 Windows 环境下安装和使用 AI 编程 IDE 的问题,适合想把 Cursor 用到真实开发流程中的读者。读完可以完成 Cursor 安装、模型配置、项目接入和一次真实代码生成验证。 一. 开篇引入 Cursor 是一类典型的 AI 编程 IDE&a…...

别再当老实人了!用博弈论拆解程序员薪资谈判,教你多拿20%的Offer

程序员薪资谈判实战:用博弈论思维多拿20% Offer 在技术行业,薪资谈判往往是决定职业发展速度的关键环节。许多开发者花费数月刷题准备技术面试,却在最后谈薪阶段草草收场,殊不知这个环节的博弈可能直接影响未来三年的总收入增长曲…...

高速ADC时序收不稳?聊聊用FPGA的IDELAY和IODELAYCTRL做数据对齐的那些事儿(以ADS42LB69为例)

高速ADC时序收不稳?聊聊用FPGA的IDELAY和IODELAYCTRL做数据对齐的那些事儿(以ADS42LB69为例) 在高速数据采集系统的设计中,ADC与FPGA的接口时序问题往往是工程师们最头疼的"拦路虎"。特别是当采样率突破200MSPS时&#…...

终极指南:3步免费解锁Cursor Pro完整功能,告别试用限制

终极指南:3步免费解锁Cursor Pro完整功能,告别试用限制 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reac…...

用PointNet搞定ShapeNet零件分割:手把手教你训练自己的3D模型分割器

用PointNet实现ShapeNet零件分割:从数据准备到可视化分析的完整实战指南 在3D视觉领域,点云分割技术正逐渐成为工业检测、自动驾驶和机器人抓取等场景的核心支撑。不同于传统的2D图像分割,点云数据直接保留了物体的三维几何信息,使…...

别再只盯着RCE了:Aria2 RPC接口的任意文件写入漏洞,手把手教你复现与本地环境搭建

深入解析Aria2 RPC接口的任意文件写入漏洞:从环境搭建到原理分析 在开源下载工具领域,Aria2凭借其轻量级、多协议支持的特性赢得了众多技术用户的青睐。然而,正是这样一个看似简单的工具,其RPC接口却隐藏着可能被恶意利用的安全隐…...

Ubuntu 22.04上手动安装Zabbix Agent 5.0.2:当官方源没有你需要的版本时

Ubuntu 22.04手动部署Zabbix Agent 5.0.2:精准版本控制的运维实践 当监控系统需要与特定版本的Zabbix Server对接时,官方软件源往往无法满足精确版本需求。本文将深入探讨如何在Ubuntu 22.04上手动部署Zabbix Agent 5.0.2版本,这种方案特别适…...