Ubuntu 18.04安装fast-dds
创始人
2024-03-19 07:15:30
0

提纲
1、概述
2、foonathan_memory_vendor
3、fast-cdr
4、fast-dds
5、编译HelloWorldExample
6、安装fast-dds-gen,使用IDL文件构建代码



1、概述

fastdds是干什么,就不重复说了。

操作系统是Ubuntu18.04

本次采用源码编译安装,需要使用到以下的包:
1.foonathan_memory_vendor

2.fast-cdr

3.fast-dds



2、foonathan_memory_vendor的安装

获取foonathan_memory_vendor:

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


3、fast-cdr

获取fast-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


4、fast-dds

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

在编译过程中cmake的版本会过低,18.04更新的cmake为3.10左右,fast-dds需要3.16以上

可以进入cmake官网下载相应版本,我采用的是 cmake-3.16.6.tar.gz

解压后

cd cmake-3.16.6
./bootstrap
make
make install

如果本身的cmake版本很高,可以忽略这步。

如上,完成编译安装后需要添加环境:

gedit ~/.bashrc 
export LD_LIBRARY_PATH=/home/mkt/Fast-DDS/install/lib

注意改成自己的路径



5、编译HelloWorldExample

编译成功后开始测试fast-dds的helloworld

定位地址~/Fast-DDS/Fast-DDS-master/examples/cpp/dds/HelloWorldExamplecd ~/Fast-DDS/Fast-DDS/examples/cpp/dds/HelloWorldExample
mkdir build
cd build
cmake  -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install
make

获得如下内容:

运行两终端,分别执行发布和订阅

./DDSHelloWorldExample publisher
./DDSHelloWorldExample subscriber




6、安装fast-dds-gen,使用IDL文件构建代码

先安装依赖环境:

sudo apt install openjdk-8-jdk
参考官网执行如下操作:cd ~~/Fast-DDS/
git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git
cd Fast-DDS-Gen
gradle assemble #这一步会提示找不到gradle,所以执行这一步之前要先安装gradle#输出下面的信息,说明fast-dds-gen编译成功了。
BUILD SUCCESSFUL in 13s
6 actionable tasks: 4 executed, 2 up-to-date#最后配置fast-dds-gen的环境变量
gedit ~/.bashrc
export PATH=/home/mkt/Fast-DDS/Fast-DDS-Gen/scripts:$PATH
source /etc/profile

完成这些就可以使用fastddsgen来通过idl文件生成代码,但是只生成源代码还不够,还需要写cmakelist.txt。

fastddsgen Helloworld.idl

在新路径下拷贝helloworld.idl,执行上述命令,得到如下文件:

至此,fast-dds的基本编译及使用就完成。但是对fastdds的学习来说,这是万里长征的第一步,后续还需要做非常多的工作才能了解fastdds。



参考资料
1、https://blog.csdn.net/mkt123338702/article/details/125880446,这篇文章中有很多细节需要调整,但是文章没有说明,需要自己摸索
2、https://bylee.blog.csdn.net/article/details/124705821,这篇文章主要是参考编译idl。



相关内容

热门资讯

住户养百余只猫引发邻里纠纷 北... 12月19日,随着住户曹某将100余只猫全部迁出,一场发生在北京石景山的邻里纠纷得以实质化解。 一住...
新修订的《河南省征兵工作条例》... 日前,省人大常务委员会发布公告,新修订的《河南省征兵工作条例》自2026年1月1日起施行。 据省征兵...
云南出台重要条例!明年1月1日... 《云南省县级人民代表大会常务委员会街道工作委员会工作条例》将于2026年1月1日起施行。12月26日...
第四批生态环境损害赔偿十大典型... 12月26日,生态环境部联合住房城乡建设部、水利部、农业农村部,共同发布第四批生态环境损害赔偿十大典...
海峡创新(300300)披露对... 截至2025年12月26日收盘,海峡创新(300300)报收于17.15元,较前一交易日上涨0.94...
年度“法规体检”报告亮相 备案... 中新社北京12月26日电 (记者 谢雁冰)督促纠正要求残疾人机动轮椅车登记应当具有本市常住户籍问题,...
福田区保险业人民调解委员会成立... 深圳新闻网2025年12月23日讯(记者 翁任莹)近日,深圳市福田区保险业人民调解委员会正式启动运行...
兰心十年:用制度承载善意 在许多人的想象中,公益往往诞生于某个情绪的高点。但真正能走得长远的公益,几乎都不是这样开始的。对陈婧...
青海省公共法律服务平台累计指引... 人民网西宁12月26日电 (记者况玉)记者从12月26日召开“十四五”发展成就系列主题新闻发布会青海...