【FastDDS学习笔记】Ubuntu22上安装fastDDS环境

本文详细介绍了如何在Ubuntu 22上手动编译和安装FastDDS,包括Foonathan_memory_vendor、FastCDR和Fast-DDS核心库,以及Asio和TinyXML2的依赖。重点突出了FastDDS的高性能、跨平台支持和开源特性,适合机器人、IoT等领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

目录

第一章:【FastDDS学习笔记】Ubuntu22上安装fastDDS环境
第二章:【FastDDS学习笔记】HelloWorld示例程序编译和运行
第三章:【FastDDS学习笔记】Fast-DDS-Gen安装记录

为什么选择FastDDS

eProsima Fast DDS是一个独立的 Cpp 中间件实现,提供OMG DDS 1.4和OMG RTPS 2.2可互操作的有线协议标准。

eProsima Fast DDS 速度惊人,在 Windows 和 Linux 中都击败了ZeroMQ和其他 DDS 中间件解决方案等替代方案。

该框架使用接口定义语言 (IDL) 从主题定义生成发布/订阅代码,允许开发人员专注于他的应用程序逻辑,而无需担心网络细节。

eProsima Fast DDS 是一款免费和开源软件(Apache License 2.0),具有多种功能和工具,以及商业支持选项。

Fast DDS Docker 映像现在 可供下载。

优点

  • 高性能: 即使在低带宽环境中也能实现低延迟、高吞吐量 。请参阅性能基准。

  • 轻松的多平台集成: Windows、Linux、Mac OS、QNX、VxWorks、iOS、Android、Raspbian/Debian Buster。

  • 免费和开源: Apache 许可证 2.0

  • 基于标准且可互操作的 DDS 合规性:符合 OMG DDS 1.4。

  • 完全符合 RTPS:符合 OMG RTPS 2.2

  • 提供个性化服务和商业支持

  • 有据可查且易于使用:请参阅我们的 可用文档

  • 非常适合: 机器人、物联网、汽车、关键应用。

安装FastDDS

要使用 Fast DDS 首先需要安装它,有 bin、Source、docker image 3 种方式.

但是 bin 和 docker image 需要到官网预留个人信息才能下载,所以这里可以考虑源码下载。

要下载 3 份源码:

  • vendor
  • fast cdr
  • fast dds

在 ubuntu 下用 cmake 方式编译。

开始安装

参考文档: 官网

安装需要下载以下代码源码:

  • foonathan_memory_vendor, STL兼容的C++内存分配库.
  • fastcdr,支持 standard CDR 序列化机制的C++序列化库
  • fastrtps, eProsima Fast DDS 库的核心库
安装编译工具

在unbuntu上安装首先需要相关的工具:

sudo apt install cmake g++ python3-pip wget git
安装FastDDS依赖的库

安装eProsima Fast DDS运行过程中依赖的库:

  • Asio and TinyXML2 libraries
Asio and TinyXML2 libraries

Asio 是一个用于网络和低级 I/O 编程的跨平台 C++ 库,它提供了一致的异步模型。

TinyXML2 是一个简单、小巧、高效的 C++ XML 解析器。

在 Ubuntu 上使用以下命令:

sudo apt install libasio-dev libtinyxml2-dev
编译安装Foonathan memory

Foonathan memory ,是一个经过优化的分配器

下载并编译代码:

mkdir Fast-DDS
cd Fast-DDS
git clone https://github.com/eProsima/foonathan_memory_vendor.git
mkdir foonathan_memory_vendor/build
cd foonathan_memory_vendor/build
cmake .. -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install -DBUILD_SHARED_LIBS=ON
cmake --build . --target install

执行效果(部分截图):在这里插入图片描述

编译安装Fast CDR

Fast CDR,是一个 C++ 库,提供了两种序列化机制。

一种是标准的CDR序列化机制,另一种是修改标准的更快实现。

cd ~/Fast-DDS
git clone https://github.com/eProsima/Fast-CDR.git
mkdir Fast-CDR/build
cd Fast-CDR/build
cmake .. -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install
cmake --build . --target install

执行效果(部分截图):

在这里插入图片描述

编译安装Fast-DDS

cd ~/Fast-DDS
git clone git@github.com:eProsima/Fast-DDS.git
mkdir Fast-DDS/build && cd Fast-DDS/build
cmake ..  -DCMAKE_INSTALL_PREFIX=~/dds/fast-dds/install -cmake ..  -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install
cmake --build . --target install

执行效果(部分截图):

在这里插入图片描述

编译安装Fast-DDS-Gen(有报错,未解决)

Fast-DDS-Gen用来把IDL生成代码,并不妨碍代码执行

cd ~/Fast-DDS
git clone https://github.com/eProsima/Fast-DDS-Gen.git
cd Fast-DDS-Gen
./gradlew build

注意:这里需要先安装Java环境

执行后发生以下问题:

在这里插入图片描述

安装gradle后,问题还是存在,今天先到这里,这个问题以后再解决。

可能的问题

下载的过程可能有点慢

如果下载失败,可以手动下载代码: 代码传送门

安装的权限设置(参考内容)

要在系统上直接安装,请删除和的配置步骤中出现的所有标志,并将配置步骤中Fast-DDS的第一个标志更改为foonathan_memory_vendor以下内容:

-DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_SHARED_LIBS=ON

注意:在系统目录上安装可能需要权限。也许权限必须通过 sudo.

sudo cmake --build . --target install

在这里插入图片描述

### 编译和安装FastDDS #### Linux环境下的编译安装过程 对于Linux环境下,创建一个专门用于下载并构建eProsima Fast DDS及其依赖项的目录: ```bash mkdir Fast-DDS cd Fast-DDS ``` 从指定位置获取FastDDS压缩包之后,在选定的目标文件夹内解压该档案,例如使用命令`tar -xvf eProsima_Fast-DDS-v2.8.1-Linux.tgz`来完成此操作[^1]。 为了使软件能够正常工作以及部署必要的库文件至系统的适当路径下,需切换到解压后的目录,并通过管理员权限运行名为`install.sh`的脚本来处理整个安装流程。这一步骤会自动配置所需的组件版本(比如cmake 3.22.1),并将FastDDS放置于`/usr/local/lib/fastdds`之中[^2]: ```bash cd <extraction_directory> sudo ./install.sh ``` #### Windows环境下的编译安装指南 针对Windows平台上的用户而言,官方推荐采用Visual Studio作为主要开发工具来进行项目的建立。具体步骤如下所示: - 安装Visual Studio,并确保选择了C++桌面开发的工作负载。 - 下载适用于Windows版别的预编译二进制分发包或是源码形式的FastDDS。 - 如果选择的是ZIP格式的二进制发布,则只需将其解压即可立即投入使用;而如果是打算自行编译的话,则应参照README.md文档内的指示说明进行操作。 #### macOS环境下的编译安装指导 macOS用户的最佳实践方案是利用Homebrew包管理器简化安装过程: - 首先确认已正确设置了Xcode Command Line Tools; - 接着打开终端窗口输入以下指令以添加tap仓库并安装Fast DDS: ```bash brew tap eprosima/fastrtps brew install fastrtps ``` 上述命令将会连同所需的一切依赖关系一起被妥善解决掉[^3]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_李小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值