Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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?

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