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

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

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

bash 复制代码
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加载虚拟环境和环境变量后,运行如下命令即可:

bash 复制代码
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路径等的区别。

相关推荐
xiaohai@Linux3 天前
ESP32 在IDF_V5.3.1版本下实现AP无线热点模式!(带WIFI事件处理)
c语言·嵌入式硬件·tcp/ip·wifi·esp32
乐鑫科技 Espressif3 天前
解锁 AIoT 无限可能,乐鑫邀您共赴 Embedded World 2025
esp32·wi-fi·iot·乐鑫科技·embedded world
深圳启明云端科技7 天前
ESP32无线Wi-Fi蓝牙方案,设备智能连接控制,物联网通信应用
物联网·esp32·芯片·乐鑫·模组·无线方案
PassLink_12 天前
ESP32S3(主模式) 与 STM32(从模式) 进行SPI全双工通信
stm32·单片机·嵌入式硬件·esp32·spi
生活最重要(ง •̀_•́)ง13 天前
[ESP32:Vscode+PlatformIO]添加第三方库 开源库 与Arduino导入第三方库的区别
esp32·arduino·第三方库·开源库·platformio
生活最重要(ง •̀_•́)ง20 天前
[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置
vscode·esp32·arduino·platformio
Android小码家1 个月前
ESP32-CAM导入ino项目编译和烧录
esp32
芜湖_1 个月前
CLion入门2.0(优雅进行STM32和ESP32开发)(船新版本)
stm32·esp32·开发环境·clion
大专生学编程1 个月前
基于ESP32-IDF驱动GPIO输出控制LED
嵌入式硬件·esp32·esp-idf
豆奶豆豆奶1 个月前
【ESP32】ESP32连接JY61P并通过WIFI发送给电脑
esp32·esp32 wifi