gazebo: symbol lookup error - ignition math / libignition issue after upgrade from 9.0 to 9.13
Hello,
I installed Gazebo9 version 9.13 on Ubuntu 18.04 (alongside ROS Melodic) and now I get this error:
gazebo: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgazebo_common.so.9: undefined symbol: _ZN8ignition10fuel_tools12ClientConfig12SetUserAgentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
The typical solution did not work for me. All these did not fix the error:
sudo apt upgrade libignition-math2
sudo apt upgrade libignition-math2*
sudo apt upgrade libignition-math4
sudo apt upgrade libignition-math4*
sudo apt upgrade libignition-fuel-tools*
sudo apt upgrade libignition*
This error came about when i tried to update Gazebo 9 from version 9.0 to 9.13. I did this by downloading all the deb files from http://gazebosim.org/download and running the following commands (in order):
sudo dpkg -i libgazebo9_9.13.0-1~bionic_amd64.deb
sudo dpkg -i gazebo9-common_9.13.0-1~bionic_all.deb
sudo dpkg -i gazebo9_9.13.0-1~bionic_amd64.deb
sudo dpkg -i gazebo9-plugin-base_9.13.0-1~bionic_amd64.deb
sudo dpkg -i gazebo9-doc_9.13.0-1~bionic_all.deb
sudo dpkg -i libgazebo9-dev_9.13.0-1~bionic_amd64.deb
sudo dpkg -i gazebo9-dbg_9.13.0-1~bionic_amd64.deb
Some people solved the issue with the line LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libignition-fuel_tools2.so.2 gazebo
(https://bugs.launchpad.net/ubuntu/+source/gazebo/+bug/1824094), so I downloaded the packages from http://gazebosim.org/distributions/ignition-fuel-tools/releases/ and ran the command:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libignition-fuel_tools2.so.2 gazebo
and everything works. How do I now modify my system so that I dont need to preload the so file? What is the right way?
***********************EDIT #1*****************************
One way is to rename the links to libignition-fuel_tools1.so.1.0.0
which are libignition-fuel_tools1.so
and libignition-fuel_tools1.so.1
to something else (I didn't delete them, I added zzz at the begining of the name); then make two copies of a link to libignition-fuel_tools1.so.2.0.0
and rename them as libignition-fuel_tools1.so
and libignition-fuel_tools1.so.1
. Now any calls to lib version 1.0 are actually calls to version 2.0.
This works, but is this the right way to handle this issue?
Thanks
Asked by TorontoRoboticsClub on 2020-05-14 08:00:32 UTC
Answers
I got the same error message:
gazebo: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgazebo_common.so.9: undefined symbol: ZN8ignition10fuel_tools12ClientConfig12SetUserAgentERKNSt7_cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
I was not sure about what the problem be, however I solved it by running this command:
sudo apt-get --reinstall install libignition-fuel-tools*
Asked by vatsanaij on 2021-01-03 05:33:58 UTC
Comments