Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

why class_loader_hide_library_symbols is needed? #9

Closed
k-okada opened this issue May 2, 2013 · 1 comment
Closed

why class_loader_hide_library_symbols is needed? #9

k-okada opened this issue May 2, 2013 · 1 comment

Comments

@k-okada
Copy link
Contributor

k-okada commented May 2, 2013

Hi,

We're developing pcl::FIlter based PCL nodelet library at http://svn.code.sf.net/p/jsk-ros-pkg/code/trunk/jsk_pcl_ros, but it does not work since groovy.
Some of our code uses pcl_ros::Filter as a super class, for example resize_points_publisher.cpp, but it fails to load as following message.

However, the code works, if we remove
class_loader_hide_library_symbols(pcl_ros_filters)
from CMakeLists.txt,

So, why class_loader_hide_library_symbols is needed? if it is not important, is it possible to remove this line from CMakeLists.txt?

[ERROR] [1367521319.699211347]: Failed to load nodelet [/depth_image_creator_nodelet] of type [jsk_pcl/DepthImageCreator]: Failed to load library /home/k-okada/ros/groovy/jsk-ros-pkg/jsk_pcl_ros/lib/libjsk_pcl_ros.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 = /home/k-okada/ros/groovy/jsk-ros-pkg/jsk_pcl_ros/lib/libjsk_pcl_ros.so: undefined symbol: _ZN7pcl_ros6Filter15config_callbackERNS_12FilterConfigEj)
[FATAL] [1367521319.699405536]: Service call failed!

@tfoote
Copy link
Contributor

tfoote commented May 2, 2013

@mirzashah can answer more fully.

But at the high level. You cannot depend on symbols in other plugins due to them being dynamically loaded, and potentially unloaded while you're running. Even worse is if you get linked against other plugins you can no longer unload correctly.

PS for questions answers.ros.org is more appropriate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants