ros2 / rmw_iceoryx

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

Symbol lookup Error #110

Open heckel97 opened 10 months ago

heckel97 commented 10 months ago

Hey, I am using ROS2 Humble and I have installed rmw_iceoryx and iceoryx in my existing workspace as described in the instructions.

Now, when I try to run the provided example, it leads to the following error: vwp@ai-runner2:~$ RMW_IMPLEMENTATION=rmw_iceoryx_cpp ros2 run demo_nodes_cpp talker /opt/ros/humble/lib/demo_nodes_cpp/talker: symbol lookup error: /home/vwp/sebastian_stereocamera_ws/install/rmw_iceoryx_cpp/lib/librmw_iceoryx_name_conversion.so: undefined symbol: _ZN3iox5capro18ServiceDescriptionC1ERKNS_3cxx6stringILm100EEES6_S6_NS1_9ClassHashENS0_10InterfacesE

If I run the example without switching to the rmw_iceoryx_cpp, it works.

It would be nice if someone could help me out here. Thank you very much

mossmaurice commented 10 months ago

@heckel97 Thanks for reporting this issue!

I just gave it a try. On Ubuntu 22.04.3 LTS a clean build and running of the example was working fine.

Did you do a source /home/vwp/sebastian_stereocamera_ws/install/setup.bash? Can you provide me the following information?

  1. Operating system
  2. Compiler version
  3. Performed build steps

Then I can try to reproduce the error.

heckel97 commented 10 months ago

Thank you for your response. I am also using Ubuntu 22.04.3 LTS and sourced my workspace. My compiler version is g++ 11.4.0 and i followed the steps of the documentation (installation and getting started steps)

mossmaurice commented 10 months ago

@heckel97

I performed the following build steps successfully:

# Created ADE ros2_humble environment based on public image: https://gitlab.com/ApexAI/ros2-ade
mkdir -p ~/ade-home/ros2_humble
cd ~/ade-home/ros2_humble
wget https://gitlab.apex.ai/apex.ai-public/ros2-ade/-/raw/master/.aderc-humble -O .aderc
ade start --update --enter

# Install dependencies for iceoryx inside ADE/Docker
sudo apt install libacl1-dev libncurses5-dev

# Build steps inside ADE/Docker
source /opt/ros/humble/setup.bash
cd ~/ros2_humble
mkdir src
wget https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos
vcs import src < ros2.repos
cd ~/ros2_humble/src/
git clone --branch humble https://github.com/ros2/rmw_iceoryx.git
cd ~/ros2_humble
colcon build --symlink-install --merge-install

Can you try to reproduce the issue with the above steps?

As it seems like a shared library issue can you additionally provide the output of RMW_IMPLEMENTATION=rmw_iceoryx_cpp ldd /home/vwp/sebastian_stereocamera_ws/install/lib/demo_nodes_cpp/talker. I think there might be an old shared library somewhere in your system where the OS searches for shared libraries. Also ldd ./install/lib/librmw_iceoryx_name_conversion.so would be interesting.

My $LD_LIBRARY_PATH environment variable is /home/simon.hoinkis/ros2_humble/install/opt/rviz_ogre_vendor/lib:/home/simon.hoinkis/ros2_humble/install/lib:/usr/local/nvidia/lib64