Hello,
Before I ask my question here my system specs:
- 3.8.0-32-generic #47~precise1-Ubuntu SMP Wed Oct 2 16:19:35 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
- g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
- ldd (Ubuntu EGLIBC 2.15-0ubuntu10.5) 2.15
- ROS Fuerte
- Gazebo 1.9 and Gazebo 1.8.6
Me and a college are working on a gazebo Plugin.
When my college compiles the library, i can use it without any problems at runtime with the robot model. Yet when I compile the very same library i get an undefined symbol error:
Error [Plugin.hh:127] Failed to load plugin /home/user/eclipse_ws/plugin_cmds/libtaurob_plugin_ros.so: /home/user/eclipse_ws/plugin_cmds/libtaurob_plugin_ros.so: undefined symbol: _ZN3ros7console13g_initializedE
My collegue is using gazebo 1.8.6. I have tried and failed using gazebo 1.8.6 and 1.9 (using the corresponing headers and gazebo simulator versions).
It looks like a name mangeling problem. But maybe somehone has encountered a similar problem?
Doing ldd libtaurob_plugin_ros.so gives this as a result. At least every required library is found.
linux-vdso.so.1 => (0x00007fffc0bf2000)
libgazebo_physics.so.1 => /usr/lib/libgazebo_physics.so.1 (0x00007f7dd5c26000)
libgazebo_sensors.so.1 => /usr/lib/libgazebo_sensors.so.1 (0x00007f7dd5991000)
libgazebo_math.so.1 => /usr/lib/libgazebo_math.so.1 (0x00007f7dd5759000)
libgazebo_common.so.1 => /usr/lib/libgazebo_common.so.1 (0x00007f7dd54a9000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7dd51a9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7dd4eac000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7dd4c96000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7dd48d6000)
libgazebo_util.so.1 => /usr/lib/libgazebo_util.so.1 (0x00007f7dd4658000)
libgazebo_physics_ode.so.1 => /usr/lib/libgazebo_physics_ode.so.1 (0x00007f7dd43bc000)
libgazebo_transport.so.1 => /usr/lib/libgazebo_transport.so.1 (0x00007f7dd4128000)
libgazebo_msgs.so.1 => /usr/lib/libgazebo_msgs.so.1 (0x00007f7dd3dbf000)
libprotobuf.so.7 => /usr/lib/libprotobuf.so.7 (0x00007f7dd3ad0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7dd38cc000)
libsdformat.so.1 => /usr/lib/libsdformat.so.1 (0x00007f7dd3607000)
libboost_thread.so.1.46.1 => /usr/lib/libboost_thread.so.1.46.1 (0x00007f7dd33ee000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7dd31d1000)
libboost_system.so.1.46.1 => /usr/lib/libboost_system.so.1.46.1 (0x00007f7dd2fcc000)
libboost_regex.so.1.46.1 => /usr/lib/libboost_regex.so.1.46.1 (0x00007f7dd2cca000)
libgazebo_rendering.so.1 => /usr/lib/libgazebo_rendering.so.1 (0x00007f7dd2917000)
libboost_filesystem.so.1.46.1 => /usr/lib/libboost_filesystem.so.1.46.1 (0x00007f7dd26f8000)
libboost_iostreams.so.1.46.1 => /usr/lib/libboost_iostreams.so.1.46.1 (0x00007f7dd24df000)
libfreeimage.so.3 => /usr/lib/libfreeimage.so.3 (0x00007f7dd21e5000)
libtinyxml.so.2.6.2 => /usr/lib/libtinyxml.so.2.6.2 (0x00007f7dd1fd0000)
libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f7dd1d73000)
libtar.so.0 => /usr/lib/libtar.so.0 (0x00007f7dd1b66000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7dd195e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7dd621b000)
libgazebo_ode.so.1 => /usr/lib/libgazebo_ode.so.1 (0x00007f7dd1694000)
libtbb.so.2 => /usr/lib/libtbb.so.2 (0x00007f7dd1467000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7dd124f000)
libicuuc.so.48 => /usr/lib/libicuuc.so.48 (0x00007f7dd0ee5000)
libicui18n.so.48 => /usr/lib/libicui18n.so.48 (0x00007f7dd0b1c000)
libgazebo_skyx.so.1 => /usr/lib/libgazebo_skyx.so.1 (0x00007f7dd08d9000)
libgazebo_selection_buffer.so.1 => /usr/lib/libgazebo_selection_buffer.so.1 (0x00007f7dd06ca000)
libOgreRTShaderSystem.so.1.7.4 => /usr/lib/x86_64-linux-gnu/libOgreRTShaderSystem.so.1.7.4 (0x00007f7dd03f2000)
libOgreMain.so.1.7.4 => /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.7.4 (0x00007f7dcfc43000)
libOgreTerrain.so.1.7.4 => /usr/lib/x86_64-linux-gnu/libOgreTerrain.so.1.7.4 (0x00007f7dcf9ca000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007f7dcf769000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f7dcf434000)
libCEGUIBase-0.7.5.so => /usr/lib/libCEGUIBase-0.7.5.so (0x00007f7dcef36000)
libCEGUIOgreRenderer-0.7.5.so => /usr/lib/libCEGUIOgreRenderer-0.7.5.so (0x00007f7dced0b000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f7dceafb000)
libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f7dce8aa000)
libmng.so.1 => /usr/lib/x86_64-linux-gnu/libmng.so.1 (0x00007f7dce622000)
libopenjpeg.so.2 => /usr/lib/libopenjpeg.so.2 (0x00007f7dce402000)
libIlmImf.so.6 => /usr/lib/libIlmImf.so.6 (0x00007f7dce140000)
libHalf.so.6 => /usr/lib/libHalf.so.6 (0x00007f7dcdefd000)
libIex.so.6 => /usr/lib/libIex.so.6 (0x00007f7dcdcde000)
libraw.so.5 => /usr/lib/libraw.so.5 (0x00007f7dcda4d000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f7dcd825000)
libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f7dcd617000)
libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007f7dcd3e3000)
liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f7dcd1d5000)
libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f7dccf86000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f7dccd47000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f7dccae9000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f7dcc70e000)
librtmp.so.0 => /usr/lib/x86_64-linux-gnu/librtmp.so.0 (0x00007f7dcc4f3000)
libgazebo_opcode.so.1 => /usr/lib/libgazebo_opcode.so.1 (0x00007f7dcc29b000)
libgazebo_opende_ou.so.1 => /usr/lib/libgazebo_opende_ou.so.1 (0x00007f7dcc095000)
libgazebo_ccd.so.1 => /usr/lib/libgazebo_ccd.so.1 (0x00007f7dcbe89000)
libicudata.so.48 => /usr/lib/libicudata.so.48 (0x00007f7dcab19000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f7dca87c000)
libXt.so.6 => /usr/lib/x86_64-linux-gnu/libXt.so.6 (0x00007f7dca616000)
libXaw.so.7 => /usr/lib/x86_64-linux-gnu/libXaw.so.7 (0x00007f7dca3a6000)
libzzip-0.so.13 => /usr/lib/libzzip-0.so.13 (0x00007f7dca19e000)
libOgrePaging.so.1.7.4 => /usr/lib/x86_64-linux-gnu/libOgrePaging.so.1.7.4 (0x00007f7dc9f6d000)
libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f7dc9d47000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f7dc9b36000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f7dc9933000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f7dc972c000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f7dc952a000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f7dc9313000)
libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f7dc910d000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f7dc8eef000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f7dc8cea000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f7dc8ade000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f7dc88a1000)
liblcms.so.1 => /usr/lib/x86_64-linux-gnu/liblcms.so.1 (0x00007f7dc8669000)
libImath.so.6 => /usr/lib/libImath.so.6 (0x00007f7dc8463000)
libIlmThread.so.6 => /usr/lib/libIlmThread.so.6 (0x00007f7dc825c000)
libjasper.so.1 => /usr/lib/x86_64-linux-gnu/libjasper.so.1 (0x00007f7dc8004000)
liblcms2.so.2 => /usr/lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007f7dc7db9000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f7dc7b9c000)
libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f7dc7981000)
libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007f7dc7743000)
libgnutls.so.26 => /usr/lib/x86_64-linux-gnu/libgnutls.so.26 (0x00007f7dc7486000)
libgcrypt.so.11 => /lib/x86_64-linux-gnu/libgcrypt.so.11 (0x00007f7dc7208000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f7dc6f3a000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f7dc6d11000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f7dc6b0d000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f7dc6905000)
libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007f7dc66fc000)
libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007f7dc64e2000)
libXmu.so.6 => /usr/lib/x86_64-linux-gnu/libXmu.so.6 (0x00007f7dc62c8000)
libXpm.so.4 => /usr/lib/x86_64-linux-gnu/libXpm.so.4 (0x00007f7dc60b7000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f7dc5eb4000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f7dc5cad000)
libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007f7dc5aa6000)
libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007f7dc581f000)
libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007f7dc557f000)
libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007f7dc534b000)
libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007f7dc5135000)
libtasn1.so.3 => /usr/lib/x86_64-linux-gnu/libtasn1.so.3 (0x00007f7dc4f24000)
libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f7dc4d12000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f7dc4b0d000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f7dc4909000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f7dc4703000)
libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007f7dc44da000)
libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007f7dc42cb000)
libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007f7dc4080000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f7dc3ddd000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f7dc3ba4000)
EDIT:
CMakeLists.txt
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
# find gazebo
include (FindPkgConfig)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
if (PKG_CONFIG_FOUND)
pkg_check_modules(GAZEBO gazebo REQUIRED)
else()
message(FATAL_ERROR "pkg-config is required; please install it")
endif()
#find_package(roscpp std_msgs genmsg)
include_directories(${GAZEBO_INCLUDE_DIRS})
include_directories(/opt/ros/fuerte/include/)
link_directories(${GAZEBO_LIBRARY_DIRS})
include_directories(${roscpp_INCLUDE_DIRS})
link_directories(${roscpp_LIBRARY_DIRS})
include_directories(${rosconsole_INCLUDE_DIRS})
link_directories(${rosconsole_LIBRARY_DIRS})
#include(/home/moro-ceci/taurob_animate_ros/build/CMakeFiles/rospack.cmake)
include(cmake/rospack.cmake)
#get_rospack_flags(roscpp)
# compile plugin
add_library(taurob_plugin_ros SHARED taurob_plugin_ros.cc)
set_target_properties(taurob_plugin_ros PROPERTIES COMPILE_FLAGS "${roscpp_CFLAGS_OTHER} ${rosconsole_LDFLAGS_OTHER}")
set_target_properties(taurob_plugin_ros PROPERTIES LINK_FLAGS "${roscpp_LDFLAGS_OTHER} ${rosconsole_LDFLAGS_OTHER}")
target_link_libraries(taurob_plugin_ros ${GAZEBO_LIBRARIES} ${roscpp_LIBRARIES} ${rosconsole_LIBRARIES})
#target_link_libraries(taurob_plugin_ros ${roscpp_LIBRARIES})
set(CMAKE_INSTALL_RPATH "${roscpp_LIBRARY_DIRS}")
install (TARGETS taurob_plugin_ros DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/gazebo_plugins/)
nm output
nm libtaurob_plugin_ros.so | grep initializedE
U _ZN3ros7console13g_initializedE
000000000003438c W _ZN5boost6detail13sp_ms_deleterIN13geometry_msgs6Twist_ISaIvEEEE15set_initializedEv
nm libtaurob_plugin_ros.so | grep initializedE | c++fil output
U ros::console::g_initialized
000000000003438c W boost::detail::sp_ms_deleter<geometry_msgs::Twist_<std::allocator<void> > >::set_initialized()
BR
Originally posted by Eisenhorn on Gazebo Answers with karma: 43 on 2013-11-04
Post score: 0