Broken gazebo7 in Ubuntu16.04 packages
Hi,
After a long time running on Ubuntu 14.04, I finally decided to upgrade my distro last week. Before I started, I deleted every files and bashrc entries concerning ROS indigo I installed previously. I also checked twice there were no gazebo-related libraries in the PATH. I then installed gazebo7 from the official repositories:
sudo apt-get update
sudo apt-get install gazebo7
However, when I start it, it looks like there is an undefined reference to a libgazebo library:
[gabs48@gu-laptop:~]$ gazebo
gzserver: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgazebo_rendering.so.7: undefined symbol: _ZNK4Ogre9Exception18getFullDescriptionB5cxx11Ev
gzclient: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgazebo_rendering.so.7: undefined symbol: _ZNK4Ogre9Exception18getFullDescriptionB5cxx11Ev
I may be wrong but I'm pretty sure I have nothing installed in the PATH beside the official ubuntu packages:
[gabs48@gu-laptop:/]$ sudo find ./ | grep gzclient
./usr/bin/gzclient
./usr/bin/gzclient-7.0.0
./usr/share/man/man1/gzclient.1.gz
[gabs48@gu-laptop:/]$ sudo find ./ | grep gzserver
./usr/bin/gzserver-7.0.0
./usr/bin/gzserver
./usr/share/man/man1/gzserver.1.gz
[gabs48@gu-laptop:/]$ sudo find ./ | grep libgazebo_rendering.so
./usr/lib/x86_64-linux-gnu/libgazebo_rendering.so.7.0.0
./usr/lib/x86_64-linux-gnu/libgazebo_rendering.so.7
So, I admit I'm a bit confused cause I never had any compatibility problem on Ubuntu in the past... Would anyone know what this _ZNK4Ogre9Exception18getFullDescriptionB5cxx11Ev refers to and why it wouldn't be found in the libraries?
Any help is very welcome! Thank you very much!
Asked by gurbain on 2017-01-23 06:24:00 UTC
Comments
Looks like a problem with one of the symbols in the ogre libraries. Could you please edit the answer and attach the result of: 1. which gazebo 2. ldd /usr/bin/gzclient | grep render 3. nm -D /usr/lib/x86_64-linux-gnu/libOgreOverlay.so.1.9.0 | grep Exception 4. dpkg -l | grep ogre. Thanks.
Asked by Jose Luis Rivero on 2017-01-23 18:09:30 UTC
Hi Jose,
Thank you for you fast reply! I found the solution yesterday evening. Actually, as old version of Ogre was still remaining in my /usr/local/lib path. I hadn't noticed it because gzclient and gzserver were randomly linking to it or to the official Ubuntu Ogre1.9 library in /usr/lib. So it didn't appear when I run the ldd command the first time, but well another time.
I just removed Ogre in /usr/local and it works like a charm!
Asked by gurbain on 2017-01-24 04:07:01 UTC
Just to document however, here are the outputs you recommended (which showed nothing alerting, I think): 1. $ which gazebo /usr/bin/gazebo 2. $ ldd /usr/bin/gzclient | grep render libgazebo_rendering.so.7 => /usr/lib/x86_64-linux-gnu/libgazebo_rendering.so.7 .... 3. $ nm -D /usr/lib/x86_64-linux-gnu/libOgreOverlay.so.1.9.0 | grep Ogre9Exception18getFullDescription U _ZNK4Ogre9Exception18getFullDescriptionB5cxx11Ev 4. $ dpkg -l | grep ogre ii libogre-1.9.0v5:amd64 1.9 ....
Asked by gurbain on 2017-01-24 04:13:49 UTC
perfect! could you please mark the answer as solved?
Asked by Jose Luis Rivero on 2017-03-02 13:24:26 UTC