• Ubuntu 18.04安装fast-dds


    提纲
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在编译过程中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
    
    • 1
    • 2
    • 3
    • 4

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

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

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

    注意改成自己的路径



    5、编译HelloWorldExample

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

    定位地址~/Fast-DDS/Fast-DDS-master/examples/cpp/dds/HelloWorldExample
    
    cd ~/Fast-DDS/Fast-DDS/examples/cpp/dds/HelloWorldExample
    mkdir build
    cd build
    cmake  -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install
    make
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    获得如下内容:

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

    ./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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    fastddsgen Helloworld.idl
    
    • 1

    在新路径下拷贝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。



  • 相关阅读:
    (183)Verilog HDL:设计一个移位功能Rotate100
    Linux命令详解(14)useradd命令
    萤火商城V2.0开源版[uni-app端],轻量级前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP
    字体管理工具 - RightFont使用教程
    python学习笔记5-堆
    “绿色低碳+数字孪生“双轮驱动,解码油气管道站升级难点 | 图扑软件
    无线WiFi安全渗透与攻防(六)之WEP破解-Gerix-wifi-cracker自动化破解WEP加密
    java计算机毕业设计学生综合考评管理系统源码+数据库+系统+lw文档+mybatis+运行部署
    常见移动端导航类型
    Java中的SPI原理浅谈
  • 原文地址:https://blog.csdn.net/zhangzl4321/article/details/128183475