rosidl on archlinuxarm
I'm trying to build ROS2 on Arch Linux for Arm. The rosidl packages fail to build. Has anyone had experience with this?
Here is my error message
--- stderr: rosidl_typesupport_interface
CMake Error at /home/environ/Developer/arm_ros2_ws/install/ament_cmake_target_dependencies/share/ament_cmake_target_dependencies/cmake/ament_cmake_target_dependencies-extras.cmake:19 (find_package):
By not providing "Findament_cmake_include_directories.cmake" in
CMAKE_MODULE_PATH this project has asked CMake to find a package
configuration file provided by "ament_cmake_include_directories", but CMake
did not find one.
Could not find a package configuration file provided by
"ament_cmake_include_directories" with any of the following names:
ament_cmake_include_directoriesConfig.cmake
ament_cmake_include_directories-config.cmake
Add the installation prefix of "ament_cmake_include_directories" to
CMAKE_PREFIX_PATH or set "ament_cmake_include_directories_DIR" to a
directory containing one of the above files. If
"ament_cmake_include_directories" provides a separate development package
or SDK, be sure it has been installed.
Call Stack (most recent call first):
/home/environ/Developer/arm_ros2_ws/install/ament_cmake_target_dependencies/share/ament_cmake_target_dependencies/cmake/ament_cmake_target_dependenciesConfig.cmake:38 (include)
/home/environ/Developer/arm_ros2_ws/install/ament_cmake/share/ament_cmake/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
/home/environ/Developer/arm_ros2_ws/install/ament_cmake/share/ament_cmake/cmake/ament_cmakeConfig.cmake:38 (include)
CMakeLists.txt:5 (find_package)
---
Failed <<< rosidl_typesupport_interface [ Exited with code 1 ]
--- stderr: libyaml_vendor
CMake Error at /home/environ/Developer/arm_ros2_ws/install/ament_cmake_target_dependencies/share/ament_cmake_target_dependencies/cmake/ament_cmake_target_dependencies-extras.cmake:19 (find_package):
By not providing "Findament_cmake_include_directories.cmake" in
CMAKE_MODULE_PATH this project has asked CMake to find a package
configuration file provided by "ament_cmake_include_directories", but CMake
did not find one.
Could not find a package configuration file provided by
"ament_cmake_include_directories" with any of the following names:
ament_cmake_include_directoriesConfig.cmake
ament_cmake_include_directories-config.cmake
Add the installation prefix of "ament_cmake_include_directories" to
CMAKE_PREFIX_PATH or set "ament_cmake_include_directories_DIR" to a
directory containing one of the above files. If
"ament_cmake_include_directories" provides a separate development package
or SDK, be sure it has been installed.
Call Stack (most recent call first):
/home/environ/Developer/arm_ros2_ws/install/ament_cmake_target_dependencies/share/ament_cmake_target_dependencies/cmake/ament_cmake_target_dependenciesConfig.cmake:38 (include)
/home/environ/Developer/arm_ros2_ws/install/ament_cmake/share/ament_cmake/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
/home/environ/Developer/arm_ros2_ws/install/ament_cmake/share/ament_cmake/cmake/ament_cmakeConfig.cmake:38 (include)
CMakeLists.txt:5 (find_package)
What do you mean it fails ? Can you give the error message?
I have edited my question to include my build error
How are you compiling ROS 2?
I am trying to cross compile. My host is ubuntu 18.04. I am following the instructions https://github.com/ros2-for-arm/ros2/...
If it matters, rcl also failed to build because it couldn't find test_msgs-config.cmake. I'm not sure where these cmake files should be.
https://github.com/ros2-for-arm/ros2/...
@pokitoz thanks for the link! I'm going to follow the instructions in that script, with the patches, with the additional changes you posted to the cmake file.I will post an update on its status.
Great. Hopefully it will work on your side ;) I will update the instructions on the wiki soon so it should be clearer.
The build finished. I mounted my arm image and chroot into it. I copied all of the *.so files to my image in its /lib path (/mnt/lib on host). I also copied all the bin files to its /bin. I confirmed the copy. When I run $ros2 it throws an error "ModuleNotFoundError: No module named pkg_resources"