Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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