Fast-dds window编译问题(卡在Asio, Tinyxml2)

最近在学习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后目录:

Fast-dds window编译问题(卡在Asio, Tinyxml2)_第1张图片

 即以下语句

find_path(Asio_INCLUDE_DIR NAMES asio.hpp PATHS C:/ProgramData/chocolatey/lib/asio/include)

另外tinyxml2也会存在同样的问题,更改 Fast-DDS\cmake\modules\FindTinyXML2.cmake

Fast-dds window编译问题(卡在Asio, Tinyxml2)_第2张图片

再次编译即可通过:

生成后,还需要将Fast-dds的dll的目录加到path环境变量中:

 C:\Program Files (x86)\fastrtps\bin

C:\Program Files (x86)\fastcdr\bin

C:\Program Files (x86)\foonathan_memory_vendor\bin

你可能感兴趣的:(ros2/dds,windows,分布式)