micro-ROS / micro-ROS/micro_ros_espidf_component
Unable to build as component on windows
还没有人认领这个 Issue。
- 主要语言
- C
- 星标
- 419
- 派生
- 124
- 平均合并
- 21 小时 35 分钟
- 30 天内合并 PR
- 3
描述
I'm unable to build the micro_ros_espidf_component on Windows 11.
The root cause seems to be that in micro_ros_espidf\libmicroros.mk:1 the variable EXTENSIONS_DIR is not correctly populated, as the line
EXTENSIONS_DIR = $(shell pwd)
is not valid in Windows, even using PowerShell. Removing this line and passing
EXTENSIONS_DIR = ${COMPONENT_DIR}
in the CMakeList.txt solves this issue, and create others, as the makefile is heavily based on Linux.
#### Steps to reproduce the issue
> idf.py menuconfig
Executing action: menuconfig
Running cmake in directory E:\work\HLPP\HTTPMaster\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DPYTHON=d:\esp\esp-tools\python_env\idf5.5_py3.11_env\Scripts\python.exe -DESP_PLATFORM=1 -DCCACHE_ENABLE=1 E:\work\HLPP\HTTPMaster"...
-- Found Git: D:/esp/esp-tools/tools/idf-git/2.39.2/cmd/git.exe (found version "2.39.2.windows.1")
-- Minimal build - OFF
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- The ASM compiler identification is GNU
-- Found assembler: D:/esp/esp-tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/esp/esp-tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/esp/esp-tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32s3
NOTICE: Processing 3 dependencies:
NOTICE: [1/3] espressif/mdns (1.8.2)
NOTICE: [2/3] joltwallet/littlefs (1.20.1)
NOTICE: [3/3] idf (5.5.1)
-- Project sdkconfig file E:/work/HLPP/HTTPMaster/sdkconfig
-- Compiler supported targets: xtensa-esp-elf
-- Found Python3: d:/esp/esp-tools/python_env/idf5.5_py3.11_env/Scripts/python.exe (found version "3.11.2") found components: Interpreter
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
-- USING O3
-- App "HTTPMaster" version: ace5331-dirty
-- Adding linker script E:/work/HLPP/HTTPMaster/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script E:/work/HLPP/HTTPMaster/build/esp-idf/esp_system/ld/sections.ld.in
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.bt_funcs.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.wdt.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.version.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_master.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_50.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_smp.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_dtm.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_test.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_scan.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libc.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld
-- Adding linker script D:/esp/v5.5.1/esp-idf/components/soc/esp32s3/ld/esp32s3.peripherals.ld
-- Using Micro XRCE-DDS middleware
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
process_begin: CreateProcess(NULL, pwd, ...) failed.
make: *** No rule to make target `/esp32_toolchain.cmake.in', needed by `/esp32_toolchain.cmake'. Stop.
CMake Error at components/micro_ros_espidf/CMakeLists.txt:90 (message):
FAILED: 2
-- Configuring incomplete, errors occurred!
cmake failed with exit code 1
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 micro_ros_espidf/libmicroros.mk:1 和 components/micro_ros_espidf/CMakeLists.txt:90 开始,然后在 Windows 11 上使用 `idf.py menuconfig` 重现失败。跟踪 EXTENSIONS_DIR 和生成的 esp32_toolchain.cmake 路径是如何传递给 make 的。当该组件能够在 Windows 上完成配置和构建,且不再出现 `pwd` 失败或缺少目标错误时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- c, cmake
- 领域
- build-system, embedded-iot
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 55/100