最近在学习fast-dds的windows版本,实在没找到官方的二进制版本,故只好进行源码的编译了
相关编译文章可以参数以下:
1. 文档:
官方:
4. Windows installation from sources — Fast DDS 2.7.1 documentation (eprosima.com)
汲及不少软件的安装:
cmke, choco, pipe等,还有注意,asio与tinyxml2的安装需要额外下载到本地
可以参考:
【ROS2教程】windows10下安装ROS2-Foxy Fitzroy - 知乎 (zhihu.com)
Fast-DDS: 最完整的DDS-证明:大量成功案例。 - 我爱学习网 (5axxw.com)
2:问题
最后进行编译时,会报错"Not found a local version of Asio installed."
这里可以查看到主要是 Fast-DDS\cmake\modules\FindAsio.cmake里面没有找到asio.hpp所在的目录所致,故需要更改实现, 在find_path添加 PATHS 本地路径, 以下asio.hpp在choco安装asio后目录:
即以下语句
find_path(Asio_INCLUDE_DIR NAMES asio.hpp PATHS C:/ProgramData/chocolatey/lib/asio/include)
另外tinyxml2也会存在同样的问题,更改 Fast-DDS\cmake\modules\FindTinyXML2.cmake
再次编译即可通过:
生成后,还需要将Fast-dds的dll的目录加到path环境变量中:
C:\Program Files (x86)\fastrtps\bin
C:\Program Files (x86)\fastcdr\bin
C:\Program Files (x86)\foonathan_memory_vendor\bin