# Revision history [back]

Tip: type this in your shell:

c++filt _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


This will allow you to see the missing symbol is in human-readable format:

ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)


Now, your system is not able to find this symbol in /opt/ros/hydro/lib/libopenni_nodelet.so or the shared libraries it's linked to. You can confirm that you don't have it by typing:

nm -D /opt/ros/hydro/lib/*.so | grep -i "T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z"


In my case (working Hydro), I get (in /opt/ros/hydro/lib/librosconsole.so):

0000000000016530 T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


There must be an error in the package (not up-to-date or missing shared library dependency). Check that you are up-to-date, and if the problem persists, you may want to contact the developers and/or packagers.

Tip: type this in your shell:

c++filt _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


This will allow you to see the missing symbol is in human-readable format:

ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)


Now, your system is not able to find this symbol in /opt/ros/hydro/lib/libopenni_nodelet.so or the shared libraries it's linked to. You can confirm that you don't have it by typing:

nm -D /opt/ros/hydro/lib/*.so | grep -i "T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z"


In my case (working Hydro), I get (in /opt/ros/hydro/lib/librosconsole.so):

0000000000016530 T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


There must be an error in the package (not up-to-date or missing shared library dependency). Check that you are up-to-date, and if the problem persists, you may want to contact the developers and/or packagers.

Tip: type this in your shell:

c++filt _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


This will allow you to see the missing symbol in human-readable format:

ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)


Now, your system is not able to find this symbol in /opt/ros/hydro/lib/libopenni_nodelet.so or the shared libraries it's linked to. You can confirm that you don't have it in your installed ROS libraries by typing:

nm -D /opt/ros/hydro/lib/*.so | grep -i "T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z"


In my case (working Hydro), I get (in /opt/ros/hydro/lib/librosconsole.so):

0000000000016530 T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


There must be an error in the package (not up-to-date or missing shared library dependency). Check that you are up-to-date, and if the problem persists, you may want to contact the developers and/or packagers.

Tip: type this in your shell:

c++filt _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


This will allow you to see the missing symbol in human-readable format:

ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)


Now, your system is not able to find this symbol in /opt/ros/hydro/lib/libopenni_nodelet.so or the shared libraries it's linked to. You can confirm that you don't have it in your installed ROS libraries by typing:

nm -D /opt/ros/hydro/lib/*.so | grep -i "T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z"


In my case (working Hydro), I get (in /opt/ros/hydro/lib/librosconsole.so):

0000000000016530 T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


There must be an error in the package (not up-to-date or missing shared library dependency). Check that you are up-to-date, up-to-date as advised by @ahendrix, and if the problem persists, you may want to contact the developers and/or packagers.

Tip: type this in your shell:

c++filt _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


This will allow you to see the missing symbol in human-readable format:

ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)


This process is called demangling. Now, your system is not able to find this symbol in /opt/ros/hydro/lib/libopenni_nodelet.so or the shared libraries it's linked to. You can confirm that you don't have it in your installed ROS libraries by typing:

nm -D /opt/ros/hydro/lib/*.so | grep -i "T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z"


In my case (working Hydro), I get (in /opt/ros/hydro/lib/librosconsole.so):

0000000000016530 T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


There must be an error in the package (not up-to-date or missing shared library dependency). Check that you are up-to-date as advised by @ahendrix, and if the problem persists, you may want to contact the developers and/or packagers.

Tip: type this in your shell:

c++filt _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


This will allow you to see the missing symbol in human-readable format:

ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)


This process is called demangling. Now, your system is not able to find this symbol in /opt/ros/hydro/lib/libopenni_nodelet.so or the shared libraries it's linked to. You can confirm that you don't have it in your installed ROS libraries by typing:

nm -D /opt/ros/hydro/lib/*.so | grep -i "T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z"


In my case (working Hydro), I get (in /opt/ros/hydro/lib/librosconsole.so):

0000000000016530 T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


There must be an error in the package (not up-to-date or missing shared library dependency). Check that you are up-to-date as advised by @ahendrix, and if the problem persists, you may want to contact the developers and/or packagers.

## Update

Here's a script that can help you find a given symbol in a given library directory:

### find_symbol.sh

#!/bin/sh
# First argument: library folder (e.g. /opt/ros/hydro/lib)
# Second argument: mangled symbol (e.g. _ZN3ros7console8shutdownEv)
for lib in $(find$1 -name \*.so) ; do
res=nm -D $lib | grep$2 | grep -v " U "
if [ ! -z "$res" ]; then echo "$lib: $res" fi done  Then run: ./find_symbol.sh /opt/ros/hydro/lib _ZN3ros7console8shutdownEv  Tip: type this in your shell: c++filt _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z  This will allow you to see the missing symbol in human-readable format: ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)  This process is called demangling. Now, your system is not able to find this symbol in /opt/ros/hydro/lib/libopenni_nodelet.so or the shared libraries it's linked to. You can confirm that you don't have it in your installed ROS libraries by typing: nm -D /opt/ros/hydro/lib/*.so | grep -i "T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z"  In my case (working Hydro), I get (in /opt/ros/hydro/lib/librosconsole.so): 0000000000016530 T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z  There must be an error in the package (not up-to-date or missing shared library dependency). Check that you are up-to-date as advised by @ahendrix, and if the problem persists, you may want to contact the developers and/or packagers. ## Update Here's a script that can help you find a given symbol in a given library directory: ### find_symbol.sh #!/bin/sh # First argument: library folder (e.g. /opt/ros/hydro/lib) # Second argument: mangled symbol (e.g. _ZN3ros7console8shutdownEv) for lib in$(find $1 -name \*.so) ; do res=nm -D$lib | grep $2 | grep -v " U " if [ ! -z "$res" ]; then
echo "$lib:$res"
fi
done


Then run:run (for instance):

./find_symbol.sh /opt/ros/hydro/lib _ZN3ros7console8shutdownEv


Output:

/opt/ros/hydro/lib/librosconsole.so: 0000000000015e00 T _ZN3ros7console8shutdownEv

Tip: type this in your shell:

c++filt _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


This will allow you to see the missing symbol in human-readable format:

ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)


This process is called demangling. Now, your system is not able to find this symbol in /opt/ros/hydro/lib/libopenni_nodelet.so or the shared libraries it's linked to. You can confirm that you don't have it in your installed ROS libraries by typing:

nm -D /opt/ros/hydro/lib/*.so | grep -i "T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z"


In my case (working Hydro), I get (in /opt/ros/hydro/lib/librosconsole.so):

0000000000016530 T _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z


There Conclusion: there must be an error in the package (not up-to-date or missing shared library dependency). Check that you are up-to-date as advised by @ahendrix, and if the problem persists, you may want to contact the developers and/or packagers.

## Update

Here's a script that can help you find a given symbol in a given library directory:

### find_symbol.sh

#!/bin/sh
# First argument: library folder (e.g. /opt/ros/hydro/lib)
# Second argument: mangled symbol (e.g. _ZN3ros7console8shutdownEv)
for lib in $(find$1 -name \*.so) ; do
res=nm -D $lib | grep$2 | grep -v " U "
if [ ! -z "$res" ]; then echo "$lib: \$res"
fi
done


Then run (for instance):

./find_symbol.sh /opt/ros/hydro/lib _ZN3ros7console8shutdownEv


Output:

/opt/ros/hydro/lib/librosconsole.so: 0000000000015e00 T _ZN3ros7console8shutdownEv