Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

build firmware for android failed, "microcdr" is compatible with requested version "".

未关闭
#770 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
android, cmake, shell

调研方向

从 micro_ros_setup 的 create_firmware_ws.sh、configure_firmware.sh 和 build_firmware.sh 入口点开始,然后检查 micro_ros_demos_rclc/CMakeLists.txt 以及其中引用的 rosidl_typesupport_microxrcedds_c CMake 文件。使用 issue 中的命令复现 Android arm64-v8a 构建,并追踪 microcdr version 2.0.1 被拒绝的原因。当固件构建在没有 microcdr 配置错误的情况下完成全部 50 个 package 时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

Issue template

  • Hardware description: arm64-v8a
  • RTOS: ubuntu 24.04, Noble LTS
  • Installation type: micro_ros_setup
  • Version or commit hash: ROS 2 Jazzy
Steps to reproduce the issue

On the host ubuntu machine, run:

export ANDROID_HOME=/media/work/walter/android/sdk/
export ANDROID_NDK=/media/work/walter/android/android-ndk-r26b/
export ANDROID_NATIVE_API_LEVEL=android-31
export ANDROID_ABI=arm64-v8a
source /opt/ros/jazzy/setup.bash
mkdir microros_ws && cd microros_ws
git clone -b jazzy https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
rosdep update && rosdep install --from-paths src --ignore-src -y
colcon build
source install/local_setup.bash
ros2 run micro_ros_setup create_firmware_ws.sh android generic
ros2 run micro_ros_setup configure_firmware.sh
run micro_ros_setup build_firmware.sh /media/work/walter/android/android-ndk-r26b/build/cmake/android.toolchain.cmake
Expected behavior

micro_ros_setup is built correctly.

Actual behavior

Create firmware successfully. While building firmware, an error is raised when building the package micro_ros_demos_rclc(only this pkg is failed in total 50 pkgs):

Starting >>> micro_ros_demos_rclc
--- stderr: micro_ros_demos_rclc
CMake Error at /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Could not find a configuration file for package "microcdr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/microcdr/cmake/microcdrConfig.cmake, version: 2.0.1 (64bit)

Call Stack (most recent call first):
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/rosidl_typesupport_microxrcedds_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/rcl_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/rclConfig.cmake:41 (include)
  CMakeLists.txt:6 (find_package)


gmake[3]: *** [Makefile:267: cmake_check_build_system] Error 1
gmake[2]: *** [CMakeFiles/timer.dir/build.make:89: timer/src/timer-stamp/timer-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:686: CMakeFiles/timer.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
CMake Error at /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Could not find a configuration file for package "microcdr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/microcdr/cmake/microcdrConfig.cmake, version: 2.0.1 (64bit)

Call Stack (most recent call first):
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/rosidl_typesupport_microxrcedds_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/rcl_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/ament_cmakeCMake Error at /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install//cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Could not find a configuration file for package "microcshare/rcl/cmake/rclConfig.cmake:41 (include)
  CMakeLists.txt:6 (find_package)

dr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/microcdr/cmake/microcdrConfig.cmake, version: 2.0.1 (64bit)

Call Stack (most recent call first):
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/rosidl_typesupport_microxrcedds_cConfig.cmake:41 (include)
  /media/work/walter/Robo
tPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/rcl_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/rclConfig.cmake:41 (include)
  CMakeLists.txt:6 (find_package)


CMake Error at /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Could not find a configuration file for package "microcdr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/microcdr/cmake/microcdrConfig.cmake, version: 2.0.1 (64bit)

Call Stack (most recent call first):
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/rosidl_typesupport_microxrcedds_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/rcl_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/rclConfig.cmake:41 (include)
  CMakeLists.txt:6 (find_package)


gmake[3]: *** [Makefile:267: cmake_check_build_system] Error 1
gmake[3]: *** [Makefile:267: cmake_check_build_system] Error 1
gmake[2]: *** [CMakeFiles/fragmented_publication.dir/build.make:89: fragmented_publication/src/fragmented_publication-stamp/fragmented_publication-build] Error 2
gmake[2]: *** [CMakeFiles/publisher_count.dir/build.make:89: graph_introspection/publisher_count/src/publisher_count-stamp/publisher_count-build] Error 2
...
Failed   <<< micro_ros_demos_rclc [1.17s, exited with code 2]

Summary: 49 packages finished [30.7s]
  1 package failed: micro_ros_demos_rclc
  1 package had stderr output: micro_ros_demos_rclc
[ros2run]: Process exited with failure 2
Additional information

tried to specify the version of microcdr in CMakeLists.txt and rosidl_typesupport_microxrcedds_c_generate_interfaces.cmake of rosidl_typesupport_microxrcedds_c, still failed

主要语言
Shell
星标
514
派生
184
平均合并
22 小时 26 分钟
30 天内合并 PR
7

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

micro-ROS/micro_ros_setup 的其他 Issue

查看 micro-ROS/micro_ros_setup 的全部 Issue

相似的 Issue

更多 Shell/Bash Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。