exception = libconsole_bridge.so.0.2: cannot open shared object file: No such file or directory
I'm trying to migrat a robot's ROS packages from ubuntu 16.04 to ubuntu 18.04. The packages are not available in ROS Melodic yet but i need to run them on ROS Melodic. Most of the packages work and i'm even able t run a simulation of the robot in Gazebo but there is one library that fails and it gives me the following error.
Failed to load library /opt/ros/melodic/lib//lib_controllers.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = libconsole_bridge.so.0.2: cannot openshared object file: No such file or directory)
I need this library for control of specific parameters of the robot. Since it's a .so library i cannot change the lib dependencies inside that library. I've had this issue with the libboost_system and i've been able to install a downgraded version of that from source and add it to the LD_LIBRARY_PATH
and that solved the problem. But i couldn't do that wiht libconsol_bridge. Does anyone have an idea on how to mitigate this issue.
Thanks in advance!
So you're trying to use binaries compiled for Ubuntu
16.04
and ROS Kinetic on a newer version of Ubuntu and with a newer version of ROS?migrate is typically used to mean: update the code.
you're probably already aware, but this is really nasty, and at best a work-around.
Would running the nodes in Docker containers (which then are still Xenial+Kinetic) not be an option? Much less work, much more portable and less hacky.
@gvdhoorn Yes migrate is not the correct word to use here but more like port a robot software for kinetic to melodic. The software that hasn't been updated from kinetic to melodic and i need to port it because my essential workspace is in melodic and i need this robot in it. I'm experimenting all of this in a VM so as to not break anything in my main system. I've been able to downgrad libconsole_bridge to 0.2 but i ended up with this error : Poco exception = /opt/ros/melodic/lib/lib_controllers.so: undefined symbol: _ZN12class_loader20class_loader_private30getCurrentlyLoadingLibraryNameB5cxx11Ev
I don't know where to go from here.. I don't know what you mean with running the nodes in Docker containers, never explored this will look into it. Does this mean i can run a specific package in kinetic on a container and have it communicate with the ...(more)
Not sure port is the right word to use either, as that is typically used to describe updating software to compile on different environments.
yes, with a few constraints, but that's basically the idea, yes.