micro-ROS / micro-ROS/micro_ros_setup

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

Ouverte
#770 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Shell
Étoiles
509
Forks
183
Merge moyen
22 h 26 min
PR mergées (30 j)
7

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par les points d’entrée create_firmware_ws.sh, configure_firmware.sh et build_firmware.sh de micro_ros_setup, puis inspectez micro_ros_demos_rclc/CMakeLists.txt et les fichiers CMake référencés de rosidl_typesupport_microxrcedds_c. Reproduisez la compilation Android arm64-v8a avec les commandes indiquées dans l’issue et déterminez pourquoi microcdr version 2.0.1 est rejeté. Le travail est terminé lorsque la compilation du firmware termine les 50 packages sans l’erreur de configuration de microcdr.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, cmake, shell
Domaine
build-system, embedded-iot
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.