关于本地编译与烧录ESP-CLAW的问题

关于本地编译与烧录ESP-CLAW的问题

问题1:idf.py fullclean 清理之前的构建

报错:

Executing action: fullclean
Executing action: remove_managed_components
ERROR: Some components in the "managed_components" directory were modified on the disk since the last run of the CMake.

espressif__esp_board_manager: Hash of the file "gen_codes/Kconfig.in" in the component in "F:\xxx\espressif\esp-claw\application\edge_agent\managed_components\espressif__esp_board_manager" does not match expected hash "4d332b48c2b20e40344f01620ee698de7f0c27d0a4979ab89f0bdc3bb223881d"

Content of this directory is managed automatically.
If you want to keep the changes, you can move the directory with the component to the "components" folder of your project.
I.E. for "espressif__esp_board_manager" run:
mv F:\xxx\espressif\esp-claw\application\edge_agent\managed_components\espressif__esp_board_manager F:\xxx\espressif\esp-claw\application\edge_agent\components\espressif__esp_board_manager
If you want to discard the changes, remove the whole component directory from the "managed_components".

原因:idf.py fullclean 命令会尝试清理所有构建文件,并检查 managed_components 目录下的组件是否被修改过。它发现 espressif__esp_board_manager 组件中的 gen_codes/Kconfig.in 文件内容与 CMake 预期的哈希值不符。

措施:gen_codes/Kconfig.in 的修改是正确的),并且继续使用,可以将这个组件从“受管理的”目录移到“项目组件”目录。这样构建系统就不会自动覆盖或检查它了。
move F:\xxx\espressif\esp-claw\application\edge_agent\managed_components\espressif__esp_board_manager F:\xxx\espressif\esp-claw\application\edge_agent\components\espressif__esp_board_manager

问题2:idf.py build 编译程序

报错:

ninja: fatal: CreateProcess: The parameter is incorrect.

(is the command line too long?)

原因:编译命令(命令行)太长,超过了 Windows 的限制。

措施:设置一个环境变量,强制构建系统使用响应文件。
set CMAKE_NINJA_FORCE_RESPONSE_FILE=1