【发布时间】:2017-10-16 15:08:55
【问题描述】:
我正在尝试使用ros::pluginlib 加载一个名为 A_Plugin 的插件,该插件已正确注册到 ROS 包系统。需要注意的一点是,A_Plugin 依赖于Opensplice DDS,它需要链接 DDS 库“libddskernel.so”、“libdcpsisocpp.so”。在CmakeLists.txt 文件中,我这样写:
```
add_library(A_Plugin
src/aplugin.cpp
)
target_link_libraries(A_Plugin
$ENV{OSPL_HOME}/lib/libddskernel.so
$ENV{OSPL_HOME}/lib/libdcpsisocpp.so
)
```
它可以正确注册到 ROS 包系统,但是当我使用 pluginlib::ClassLoader 加载 A_plugin 时,在抛出 'pluginlib::CreateClassException'what(): MultiLibraryClassLoader 的实例后,我得到了以下 errors:terminate 调用:无法创建类类型测试的对象:: A_Plugin 因为没有工厂存在。确保该库存在并且通过MultiLibraryClassLoader::loadLibrary() 显式加载。我怎么解决这个问题?谢谢!
【问题讨论】:
标签: ros