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

使用SonarQube扫描ESP32项目,如何生成build-wrapper-dump.json

众所周知,ESP32项目一般使用乐鑫官方的IDF环境进行编译调试。以Windows为例,编译流程为先运行export.ps1加载虚拟环境和环境变量,然后运行idf.py build

而SonarQube扫描需要使用build-wrapper对编译过程进行一次“监视”或者说分析,以生成build-wrapper-dump.json,这个json在进行代码分析时需要使用。但是直接运行就会得到如下错误:

build-wrapper-win-x86-64.exe --out-dir . idf.py build
[SONARSOURCE BUILD-WRAPPER] failed to execute idf.py build: The system cannot find the file specified.

这是因为build-wrapper-win-x86-64.exe一般接受的是exe如gcc或编译脚本,而此处的idf.py实际为先前运行的export.ps1封装过的powershell function,查看其代码可知其封装为function idf.py { &python "$IDF_PATH\tools\idf.py" $args }也就是其封装前的实际调用为python /PATH_TO_IDF_PY/idf.py build,所以在运行export.ps1加载虚拟环境和环境变量后,运行如下命令即可:

build-wrapper-win-x86-64.exe --out-dir . python ../../esp-idf/tools/idf.py build
Executing action: all (aliases: build)
...
Project build complete. To flash, run this command:
...\.espressif\python_env\idf5.1_py3.11_env\Scripts\python.exe ..\..\esp-idf\components\esptool_py\esptool\esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32s3  write_flash --flash_mode dio --flash_size 16MB --flash_freq 80m 0x0 build\bootloader\bootloader.bin 0x8000 build\partition_table\partition-table.bin 0x10d000 build\ota_data_initial.bin 0x110000 build\esp_ot_br.bin 0x910000 build\web_ui.bin 0xc10000 build\rcp_fw.bin
or run 'idf.py -p (PORT) flash'

可以看到编译能够像往常一样开始,且期望的build-wrapper-dump.json已生成在.目录下。

另外,项目路径很容易出错,需要注意编译路径、工具路径、SonarQube路径等的区别。


http://www.kler.cn/a/313313.html

相关文章:

  • 大语言模型:解锁自然语言处理的无限可能
  • 【云计算解决方案面试整理】1-2云计算基础概念及云计算技术原理
  • 力扣515:在每个树行中找最大值
  • 【ChatGPT】 如何让ChatGPT分析数据并得出结论
  • 【前端】Vue中如何避免出现内存泄漏
  • 微信小程序=》基础=》常见问题=》性能总结
  • PyTorch 图像分割模型教程
  • SpringBoot 项目如何使用 pageHelper 做分页处理 (含两种依赖方式)
  • 【Redis入门到精通二】Redis核心数据类型(String,Hash)详解
  • Kafka 命令详解及使用示例
  • 半导体器件制造5G智能工厂数字孪生物联平台,推进制造业数字化转型
  • java--章面向对象编程(高级部分)
  • 在 Debian 12 上安装 Java 21
  • 【VUE3.0】动手做一套像素风的前端UI组件库---Button
  • iftop流量监控工具
  • 第三方软件测评机构简析:软件安全性测试的方法和流程
  • WSL2+Ubuntu 22.04搭建Qt开发环境+中文输入法
  • 云计算课程作业1
  • react native(expo)多语言适配
  • 技术成神之路:设计模式(十四)享元模式
  • 论文中译英的最佳解决方案?ChatGPT自我反思翻译法了解一下!
  • 分享3款开源、免费的Avalonia UI控件库
  • 引领长期投资新篇章:价值增长与财务安全的双重保障
  • JSBSim中的运动方程模型(更新ing........
  • 计算机视觉—3d点云数据基础
  • VUE3配置路由(超级详细)