ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org
 Ask Your Question

# Revision history [back]

Direct cause and potential solution

What the cited error means I think is that the mentioned .so file was sought but not found. Assuming you have MoveIt! installed by binary (e.g. via apt-get install on Ubuntu), you can check if those files are available by e.g. find /opt/ros -iname libmoveit*.

• If they can't be found, install MoveIt!.
• If they are there but different version number, update those libraries (e.g. on Ubuntu, apt-get dist-upgrade / apt-get install --reinstall ros-%DISTRO%-moveit).

Rationale (if curious)

Binary of MoveIt! uses SONAME in order to guarantee the ABI in/compatibility between releases and provide more organized way of debugging problems that are bsed on ABI breakage (*1). As a result, applications of the library in MoveIt! need to be rebuilt whenever MoveIt! library was updated.

*1 FYI for the decison in MoveIt! to introduce SONAME, see ros-planning/moveit#273.

(Maybe) A bit more advanced error situation

The following may or may not be the case of OP, but I just experienced in my application.

The same type of error can happen in the following situation (I use MoveIt! here but it could be any library that uses SONAME solution):

• On your local computer, MoveIt! remains old version, although new releases are available.
• Your application depends on another library (say libA) that depends on MoveIt!, and libA on your computer is already re-built against the latest released MoveIt!.
• Build your application.

I'm quite not sure how catkin and linker work, but what I see is linker tries to find the latest version of MoveIt! libs. I assume linker somehow got the version info from libA (in my case this was moveit_visual_tools, which got installed via rosdep install right before running catkin build).

I'm sure I'm wrong about details but hopefully I got the main idea correct. @v4hn should be able to correct me if needed.

I'm sure I'm wrong about details but hopefully I got the main idea correct. @v4hn can correct me if needed.

Direct cause and potential solution

What the cited error means I think is that the mentioned .so file was sought but not found. Assuming you have MoveIt! installed by binary (e.g. via apt-get install on Ubuntu), you can check if those files are available by e.g. find /opt/ros -iname libmoveit*.

• If they can't be found, install MoveIt!.
• If they are there but different version number, update those libraries (e.g. on Ubuntu, apt-get dist-upgrade / apt-get install --reinstall ros-%DISTRO%-moveit).

Rationale (if curious)

Binary of MoveIt! uses SONAME in order to guarantee the ABI in/compatibility between releases and provide more organized way of debugging problems that are bsed on ABI breakage (*1). As a result, applications of the library in MoveIt! need to be rebuilt whenever MoveIt! library was updated.

*1 FYI for the decison in MoveIt! to introduce SONAME, see ros-planning/moveit#273.

(Maybe) A bit more advanced error situation

The following may or may not be the case of OP, but I just experienced in my application.

The same type of error can happen in the following situation (I use MoveIt! here but it could be any library that uses SONAME solution):

• On your local computer, MoveIt! remains old version, although new releases are available.
• Your application depends on another library (say libA) that depends on MoveIt!, and libA on your computer is already re-built against the latest released MoveIt!.
• Build your application.

I'm quite not sure how catkin and linker work, but what I see is linker tries to find the latest version of MoveIt! libs. I assume linker somehow got the version info from libA (in my case this was moveit_visual_tools, which got installed via rosdep install right before running catkin build).

I'm sure I'm wrong about details but hopefully I got the main idea correct. @v4hn should be able to correct me if needed.

I'm sure I'm wrong about details but hopefully I got the main idea correct. @v4hn can correct me if needed.

Direct cause and potential solution

What the cited error means I think is that the mentioned .so file was sought but not found. Assuming you have MoveIt! installed by binary (e.g. via apt-get install on Ubuntu), you can check if those files are available by e.g. find /opt/ros -iname libmoveit*.

• If they can't be found, install MoveIt!.
• If they are there but different version number, update those libraries (e.g. on Ubuntu, apt-get dist-upgrade / apt-get install --reinstall ros-%DISTRO%-moveit).

Rationale (if curious)

Binary of MoveIt! uses SONAME in order to guarantee the ABI in/compatibility between releases and provide more organized way of debugging problems that are bsed on ABI breakage (*1). As a result, applications of the library in MoveIt! need to be rebuilt whenever MoveIt! library was updated.

*1 FYI for the decison in MoveIt! to introduce SONAME, see ros-planning/moveit#273.

(Maybe) A bit more advanced error situation

The following may or may not be the case of OP, but I just experienced in my application.

The same type of error can happen in the following situation (I use MoveIt! here but it could be any library that uses SONAME solution):

• On your local computer, MoveIt! remains old version, although new releases are available.
• Your application depends on another library (say libA) that depends on MoveIt!, and libA on your computer is already re-built against the latest released MoveIt!.
• Build your application.

I'm quite not sure how catkin and linker work, but what I see is linker tries to find the latest version of MoveIt! libs. I assume linker somehow got the version info from libA (in my case this was moveit_visual_tools, which got installed via rosdep install right before running catkin build).