ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Failed to load nodelet: Cannot load library: X: undefined symbol: Y

asked 2012-05-03 21:34:57 -0600

liborw gravatar image

updated 2012-05-04 01:26:34 -0600

Hi, I'm trying to rewrite the NormalEstimation (normal_3d) nodelet from pcl_ros to return PointNormal instead of just Normal. The code differs just in the point type and that I'm using pcl::concatenateFields to merge the PointXYZ and Normal cloud.

The compilation goes without problems but when I try to load the nodelet it produces the following error:

[ERROR] [1336114049.032926038]: Failed to load nodelet [/normal_estimation] of 
 type [clopema/NormalEstimationXYZ]: Failed to load library /home/wagnelib
 /ros_workspace/clopema/lib/libnormal_3d_xyz.so. Make sure that you are calling the  
 PLUGINLIB_REGISTER_CLASS macro in the library code, and that names are consistent 
 between this macro and your XML. Error string: Cannot load library: /home/wagnelib
 /ros_workspace/clopema/lib/libnormal_3d_xyz.so: undefined symbol: 
 _ZN7pcl_ros7Feature6onInitEv
[FATAL] [1336114049.037160798]: Service call failed!

UPDATE 1:

I have found that the library libnormal_3d_xyz.so is not linked with libpcl_ros_feature.so and probably should, so the question is how to link this library?

edit retag flag offensive close merge delete

Comments

What is the relation with libnormal_3d_xyz and libpcl_ros_feature.so? What I get that if if your libnormal_3d_xyz is using services of any other libraries, then you should link them up??? I am looking for an answer of the question posted here http://answers.ros.org/question/157886/error-while-loading-nodelet-velocity_multiplexer/

RB gravatar image RB  ( 2014-04-27 19:32:20 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2012-05-04 01:51:23 -0600

liborw gravatar image

The answer is actually simple, I just have to add:

target_link_libraries(normal_3d_xyz pcl_ros_features)

into CMakeLists.txt because the pcl_ros manifest doest include it by default.

edit flag offensive delete link more

Comments

No need to add header files to include_directories?

130s gravatar image 130s  ( 2013-03-29 03:17:47 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2012-05-03 21:34:57 -0600

Seen: 2,019 times

Last updated: May 04 '12