ros2 / rmw_cyclonedds

ROS 2 RMW layer for Eclipse Cyclone DDS
Apache License 2.0
107 stars 89 forks source link

Compilation error while building ros2 humble on ubunutu 20.04 from source #480

Open Tan-B24 opened 4 months ago

Tan-B24 commented 4 months ago

Bug report

Required Info:

Steps to reproduce issue

Following the steps to install ros2 humble on ubunutu 20.04 using the following: https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html

Expected behavior

Should compile without errors.

Actual behavior

I am getting this error while compiling the ros2 workspace. --- stderr: rmw_cyclonedds_cpp
/home/tan/ros2_humble/ros2/src/ros2/rmw_cyclonedds/rmw_cyclonedds_cpp/src/rmw_node.cpp:85:10: fatal error: dds/ddsc/dds_data_allocator.h: No such file or directory 85 | #include "dds/ddsc/dds_data_allocator.h" | ^~~~~~~ compilation terminated. make[2]: [CMakeFiles/rmw_cyclonedds_cpp.dir/build.make:76: CMakeFiles/rmw_cyclonedds_cpp.dir/src/rmw_node.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... /home/tan/ros2_humble/ros2/src/ros2/rmw_cyclonedds/rmw_cyclonedds_cpp/src/serdata.cpp:27:10: fatal error: dds/ddsi/q_radmin.h: No such file or directory 27 | #include "dds/ddsi/q_radmin.h" | ^~~~~ compilation terminated. make[2]: [CMakeFiles/rmw_cyclonedds_cpp.dir/build.make:89: CMakeFiles/rmw_cyclonedds_cpp.dir/src/serdata.cpp.o] Error 1 make[1]: [CMakeFiles/Makefile2:78: CMakeFiles/rmw_cyclonedds_cpp.dir/all] Error 2 make: *** [Makefile:141: all] Error 2

Additional information

Splinter1984 commented 4 months ago

Hi @Tan-B24. It seems like you trying to build cyclonedds from master branch. Try to checkout on release/0.10.x branch and try to build rmw again.

Tan-B24 commented 4 months ago

When I try building it from the release/0.10.x branch it gives me error while building cyclonedds itself without going further to the rmw build.

--- stderr: cyclonedds
/usr/bin/ld: cannot find -lstdc++ collect2: error: ld returned 1 exit status make[2]: [src/core/CMakeFiles/ddsc.dir/build.make:2442: lib/libddsc.so.0.10.4] Error 1 make[1]: [CMakeFiles/Makefile2:735: src/core/CMakeFiles/ddsc.dir/all] Error 2 make: *** [Makefile:152: all] Error 2

Failed <<< cyclonedds [10.3s, exited with code 2] Aborted <<< ament_cmake_gtest [3.98s] Aborted <<< ament_cmake_pytest [3.66s] Aborted <<< ament_lint_auto [3.37s] Aborted <<< ament_cmake_google_benchmark [3.09s] Aborted <<< ament_cmake_nose [2.80s] Aborted <<< ament_cmake_vendor_package [2.52s] Aborted <<< ament_copyright [13.4s]

Summary: 36 packages finished [1min 47s] 1 package failed: cyclonedds 7 packages aborted: ament_cmake_google_benchmark ament_cmake_gtest ament_cmake_nose ament_cmake_pytest ament_cmake_vendor_package ament_copyright ament_lint_auto 12 packages had stderr output: ament_cmake_test ament_copyright ament_cppcheck ament_flake8 ament_lint ament_mypy ament_package ament_pep257 ament_pycodestyle ament_pyflakes cyclonedds osrf_pycommon 301 packages not processed

yashmewada9618 commented 4 months ago

Hi, I had the same error. What I tried and worked for me is I changed to the release/0.9.x branch and then in the cyclondds package, I changed the colcon. pkg to -DBUILD_IDLC=AUTO which was previously set to OFF in my case.

My current cyclonedds is cloned from this fork and not the original fork due to some system dependency issues.

Current System: Ubuntu 22.04 Ros Version: ROS Humble. Read More: issue.