micro-ROS / micro-ROS/micro_ros_setup
build firmware for android failed, "microcdr" is compatible with requested version "".
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Shell
- Sterne
- 509
- Forks
- 183
- Ø Merge
- 22 Std. 26 Min.
- Gemergte PRs (30 T.)
- 7
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit den Einstiegspunkten micro_ros_setup create_firmware_ws.sh, configure_firmware.sh und build_firmware.sh, und sehen Sie sich anschließend micro_ros_demos_rclc/CMakeLists.txt sowie die referenzierten rosidl_typesupport_microxrcedds_c-CMake-Dateien an. Reproduzieren Sie den Android-arm64-v8a-Build mit den im Issue angegebenen Befehlen und verfolgen Sie nach, warum microcdr version 2.0.1 abgelehnt wird. Als abgeschlossen gilt die Aufgabe, wenn der Firmware-Build alle 50 Pakete ohne den microcdr-Konfigurationsfehler erfolgreich erstellt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, cmake, shell
- Bereich
- build-system, embedded-iot
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100