ros2 / rmw_iceoryx

rmw implementation for iceoryx
Apache License 2.0
144 stars 27 forks source link

Add stdexcept to resolve compilation error #104

Closed naga-karupi closed 7 months ago

naga-karupi commented 8 months ago

When I compile this project I get a compilation error. So I added #include <stdexcept>. std::runtime_error needs this.

Closes #77

mossmaurice commented 8 months ago

@naga-karupi Thanks for the fix! There seems to be a CI failure. Could you have a look into that? :pray:

naga-karupi commented 7 months ago

Hmm...

I looked at ros-tooling/setup-ros and found that foxy is not allowed. Only noetic, humble, iron, and rolling are allowed in the master branch.

I can't seem to do this test with foxy.

mossmaurice commented 7 months ago

@naga-karupi Thanks for looking into it!

Hmm...

I looked at ros-tooling/setup-ros and found that foxy is not allowed. Only noetic, humble, iron, and rolling are allowed in the master branch.

I can't seem to do this test with foxy.

Could you try setup-ros to v0.5 like suggested here or probably even to an earlier release for foxy?

This is the relevant place: https://github.com/ros2/rmw_iceoryx/blob/foxy/.github/workflows/lint.yml#L15

naga-karupi commented 7 months ago

Thank you for finding that issue. I was able to resolve the problem.

But the error still remains. The latest github action results for my repository can be found here. There seems to be a problem with find_package.

I assumed that the github action's environment was not running the rmw_iceoryx sourcing's configuration script. But if I create a container with the same conditions, I can build this in my container environment.

How do you think this can be solved?

mossmaurice commented 7 months ago

@naga-karupi Thanks for looking into the error.

But the error still remains. The latest github action results for my repository can be found here. There seems to be a problem with find_package.

I don't think it is related to find_package as this only shows up as a warning in the log.

   CMake Warning (dev) at /opt/ros/foxy/share/ament_cmake_core/cmake/core/python.cmake:22 (find_package):
    Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
    are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
    the cmake_policy command to set the policy and suppress this warning.

It's related to the already removed ROS 2 bridge (see #56). However, on foxy it is still there:

  /home/runner/work/rmw_iceoryx/rmw_iceoryx/ros_ws/src/227bbodyop5/rmw_iceoryx/iceoryx_ros2_bridge/src/iceoryx_ros2_bridge.cpp:32:10: fatal error: rmw_iceoryx_cpp/iceoryx_deserialize.hpp: No such file or directory
     32 | #include "rmw_iceoryx_cpp/iceoryx_deserialize.hpp"
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.

Did you also build iceoryx_ros2_bridge locally? This is executed in the CI for foxy. Are you sure you were on the right branch?

It's a bit weird as the file that is included is definitely there :thinking: Could you please push your changes here so I can have a look? :pray:

naga-karupi commented 7 months ago

I pushed the modified main.yml and lint,yml. However, the only fix is downgrading the version of ros-tooling/setup-ros.

Later, retry the build in a new container to resolve the compilation error. I'll report if I find anything.

naga-karupi commented 7 months ago

I found cause of compilation error. iceoryx_ros2_bridge needs to source setup script of icepryx_rmw_cpp.

I could compile them, when I did this.

So, I updated main.yml. I try it and action result is here.

This is a success!

mossmaurice commented 7 months ago

I found cause of compilation error. iceoryx_ros2_bridge needs to source setup script of icepryx_rmw_cpp.

I could compile them, when I did this.

So, I updated main.yml. I try it and action result is here.

This is a success!

@naga-karupi Great, thanks a lot!