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的缩写)(混链接混合链接)

iOS之深入解析插件化架构

C++调用Python浅析

跨平台 C++ 动态库插件加载器

[转载:]C#与Fortran混合编程之本地调用Fortran动态链接库

C#总结动态加载C++动态链接库