ROS2插件C++(Plguins之动态链接库dll)直播问题汇总及补充说明
Posted zhangrelay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS2插件C++(Plguins之动态链接库dll)直播问题汇总及补充说明相关的知识,希望对你有一定的参考价值。
参考官方教程:Creating and Using Plugins(C++)
漏了一步:
ros2 pkg create --build-type ament_cmake polygon_plugins --dependencies polygon_base pluginlib --library-name polygon_plugins
先过一遍流程吧(全程win10+ros2foxy,同样适用于linux和macos):
-
pluginlib
先查一下,有没有???
- ros2 pkg list
接着按官方教程走起来就行(大部分都是复制黏贴的活儿):
这里不再罗列了。
然后是编译:
-
colcon build --packages-select polygon_base polygon_plugins
报错如下:
加入文件:
<library path="polygon_plugins">
<class type="polygon_plugins::Square" base_class_type="polygon_base::RegularPolygon">
<description>This is a square plugin.</description>
</class>
<class type="polygon_plugins::Triangle" base_class_type="polygon_base::RegularPolygon">
<description>This is a triangle plugin.</description>
</class>
</library>
接着报错:
当然,还有vs环境问题:
call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat" x86_amd64
否则报错:
这些问题都要修正,然后就可以的。
运行看效果:
生成的动态链接库如下:
可执行文件如下:
以上是关于ROS2插件C++(Plguins之动态链接库dll)直播问题汇总及补充说明的主要内容,如果未能解决你的问题,请参考以下文章
Linux C++ g++ -ldl编译参数(链接libdl.so动态库,头文件<dlfcn.h>)(Dynamic Linker的缩写)(混链接混合链接)