文白飞思 發表於 2023-2-23 17:07:00

ubuntu fastdds安装

<h1><span><strong>0,虚拟机安装:</strong></span></h1>
<p>推荐安装ubuntu 20。ubuntu 22与VMware不兼容,存在无法与主机之间复制粘贴文件的问题。</p>
<p>1.虚拟机镜像下载,下载tdesktop版本:</p>
<p>中科大站点:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">Index of /ubuntu-releases/</span></span></p>
<p>公司内网:http://mirrors.hikvision.com.cn/search.php?searchkey=Ubuntu+20+desktop&amp;mirror=ubuntu-releases</p>
<p>2.虚拟机安装步骤:<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">VMware虚拟机下安装Ubuntu20.04(保姆级教程)_ubuntu 20.04 虚拟机-CSDN博客</span></span></p>
<p>3.解决虚拟机无法全屏或主机与主机之间无法复制粘贴问题</p>
<p><span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">Ubuntu全屏显示设置-CSDN博客</span></span></p>
<p>4.安装包无法定位问题(部分情况下可解决)</p>
<p><span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">解决Ubuntu无法定位软件包问题_ubuntu无法定位软件包怎么办-CSDN博客</span></span></p>
<p>&nbsp;</p>
<h1><strong>一、虚拟机上配置fastdds环境</strong></h1>
<p><strong>方法一,直接拷贝已包含fastdds环境的虚拟机(略)</strong></p>
<p><strong>方法二,配置fastdds环境,步骤如下:</strong></p>
<p><strong>1.安装编译工具</strong></p>
<p>在unbuntu上安装首先需要相关的工具(可能会失败,重复多次安装成功):</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt <span style="color: rgba(0, 0, 255, 1)">install</span> cmake g++ python3-pip <span style="color: rgba(0, 0, 255, 1)">wget</span> git</pre>
</div>
<h4>2.安装FastDDS依赖的库</h4>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt <span style="color: rgba(0, 0, 255, 1)">install</span> libasio-dev libtinyxml2-dev</pre>
</div>
<h4>3.编译安装Foonathan memory</h4>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">mkdir</span> Fast-<span style="color: rgba(0, 0, 0, 1)">DDS
</span><span style="color: rgba(0, 128, 128, 1)">2</span> cd Fast-<span style="color: rgba(0, 0, 0, 1)">DDS
</span><span style="color: rgba(0, 128, 128, 1)">3</span> git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/eProsima/foonathan_memory_vendor.git</span>
<span style="color: rgba(0, 128, 128, 1)">4</span> <span style="color: rgba(0, 0, 255, 1)">mkdir</span> foonathan_memory_vendor/<span style="color: rgba(0, 0, 0, 1)">build
</span><span style="color: rgba(0, 128, 128, 1)">5</span> cd foonathan_memory_vendor/<span style="color: rgba(0, 0, 0, 1)">build
</span><span style="color: rgba(0, 128, 128, 1)">6</span> cmake .. -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/<span style="color: rgba(0, 0, 255, 1)">install</span> -DBUILD_SHARED_LIBS=<span style="color: rgba(0, 0, 0, 1)">ON
</span><span style="color: rgba(0, 128, 128, 1)">7</span> cmake --build . --target <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<h4>4.编译安装Fast CDR</h4>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> cd ~/Fast-<span style="color: rgba(0, 0, 0, 1)">DDS
</span><span style="color: rgba(0, 128, 128, 1)">2</span> git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/eProsima/Fast-CDR.git</span>
<span style="color: rgba(0, 128, 128, 1)">3</span> <span style="color: rgba(0, 0, 255, 1)">mkdir</span> Fast-CDR/<span style="color: rgba(0, 0, 0, 1)">build
</span><span style="color: rgba(0, 128, 128, 1)">4</span> cd Fast-CDR/<span style="color: rgba(0, 0, 0, 1)">build
</span><span style="color: rgba(0, 128, 128, 1)">5</span> cmake .. -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/<span style="color: rgba(0, 0, 255, 1)">install</span>
<span style="color: rgba(0, 128, 128, 1)">6</span> cmake --build . --target <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<h3>5.编译安装Fast-DDS</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> cd ~/Fast-<span style="color: rgba(0, 0, 0, 1)">DDS
</span><span style="color: rgba(0, 128, 128, 1)">2</span> git clone https://github.com/eProsima/Fast-DDS.git<br><span style="color: rgba(0, 128, 128, 1)">3</span> <span style="color: rgba(0, 0, 255, 1)">mkdir</span> Fast-DDS/build &amp;&amp; cd Fast-DDS/<span style="color: rgba(0, 0, 0, 1)">build
</span><span style="color: rgba(0, 128, 128, 1)">4</span> cmake ..&nbsp; -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install
<span style="color: rgba(0, 128, 128, 1)">5</span> cmake --build . --target <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<h4>6.编译安装Fast-DDS-Gen</h4>
<p>1)、先安装java环境</p>
<p>监测是否有java环境</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> java -version</pre>
</div>
<p>提示找不到Java命令则安装</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">sudo</span><span style="color: rgba(0, 0, 0, 1)"> apt update
</span><span style="color: rgba(0, 128, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt <span style="color: rgba(0, 0, 255, 1)">install</span> openjdk-<span style="color: rgba(128, 0, 128, 1)">11</span>-jdk</pre>
</div>
<p>可能会出现如下部分内容安装失败的问题,根据提示执行安装命令即可</p>
<p><img src="https://img2023.cnblogs.com/blog/2293226/202302/2293226-20230222164110299-1490267545.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt <span style="color: rgba(0, 0, 255, 1)">install</span> openjdk-<span style="color: rgba(128, 0, 128, 1)">11</span>-jre-headless</pre>
</div>
<p>2)、编译安装Fast-DDS-Gen</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> cd ~/Fast-<span style="color: rgba(0, 0, 0, 1)">DDS
</span><span style="color: rgba(0, 128, 128, 1)">2</span> git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/eProsima/Fast-DDS-Gen.git</span>
<span style="color: rgba(0, 128, 128, 1)">3</span> cd Fast-DDS-<span style="color: rgba(0, 0, 0, 1)">Gen
</span><span style="color: rgba(0, 128, 128, 1)">4</span> ./gradlew assemble</pre>
</div>
<h1>&nbsp;二、使用测试</h1>
<p><strong>1.HelloWord测试</strong></p>
<p>之前步骤,我们编译的库并没有放到系统中,而是放在了一个文件夹中,所以这里我们要先设定以下对应的环境变量</p>
<p>1)配置环境变量永久生效</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">export LD_LIBRARY_PATH=/home/peifeixiang/Fast-DDS/install/lib</span><span style="color: rgba(128, 0, 0, 1)">'</span> &gt;&gt; ~/.bashrc</pre>
</div>
<p>配置环境变量临时生效</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> export LD_LIBRARY_PATH=/home/peifeixiang/Fast-DDS/<span style="color: rgba(0, 0, 255, 1)">install</span>/lib</pre>
</div>
<p>&nbsp;</p>
<p><span style="color: rgba(0, 0, 0, 1)"><strong>2)创建测试用例文件夹</strong></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p ~/Fast-DDS/examples/C++/ &amp;&amp; cd ~/Fast-DDS/examples/C++/</pre>
</div>
<p><span style="color: rgba(0, 0, 0, 1)"><strong>3)创建 HellowHikauto 测试用例</strong></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">mkdir</span> HelloHikauto &amp;&amp; cd HelloHikauto</pre>
</div>
<p><strong><span style="color: rgba(0, 0, 0, 1)">4)创建HelloHikauto.idl文件,编辑内容</span></strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">struct HelloHikauto
{
    unsigned </span><span style="color: rgba(0, 0, 255, 1)">long</span><span style="color: rgba(0, 0, 0, 1)"> index;
    </span><span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)"> message;
};</span></pre>
</div>
<p>5)<strong>调用我们之前安装好的fastdds-gen工具生成对应的C++ 文件</strong></p>
<div class="cnblogs_code">
<pre>~/Fast-DDS/Fast-DDS-Gen/scripts/fastddsgen -example CMake ./HelloHikauto.idl</pre>
</div>
<p>这里-example貌似是指定对应的编译方式,这里指定CMake,之后会在当前目录下生成C++文件,</p>
<p><img src="https://img2023.cnblogs.com/blog/2293226/202302/2293226-20230223104629084-1423539833.png" alt="" loading="lazy"></p>
<p>&nbsp;除了HelloHikauto.idl外,全部为fastdds-gen生成的</p>
<p data-pid="x-urNn2C">其中HelloHikautoPubSubMain是整个程序的main函数。用来启动其他的pub和sub的。</p>
<p data-pid="B8E2JvcV">而对应的publisher和subscriber都依赖PubSubTypes文件,代码通俗易懂可直接查阅</p>
<p data-pid="B8E2JvcV">可自行修改其中的domainid,topic等内容</p>
<p data-pid="B8E2JvcV">2.<strong>编译HelloHikauto</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">mkdir</span> build &amp;&amp;<span style="color: rgba(0, 0, 0, 1)"> cd build
cmake .. </span>-DCMAKE_PREFIX_PATH=~/Fast-DDS/<span style="color: rgba(0, 0, 255, 1)">install</span>/<br>make</pre>
</div>
<p>再build文件夹下生成了可执行文件</p>
<p><img src="https://img2023.cnblogs.com/blog/2293226/202302/2293226-20230223105345199-406769826.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>3.<strong>新打开两个终端,分别运行publisher与subscriber</strong></p>
<div class="cnblogs_code">
<pre>./HelloHikauto publisher</pre>
</div>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre>./HelloHikauto subscriber</pre>
</div>
<h1><strong><span style="color: rgba(0, 0, 0, 1)">三、主机之间fastdds通讯</span></strong></h1>
<p><span style="color: rgba(0, 0, 0, 1)">准备工作:修改网络配置</span></p>
<p><span style="color: rgba(136, 136, 136, 1)"><img src="https://img2023.cnblogs.com/blog/2293226/202302/2293226-20230223171645926-1528691953.png" alt="" loading="lazy"></span></p>
<p>&nbsp;ifconfig查看ip,保证两台主机在同一个网段。</p>
<p>&nbsp;2、<strong>另一台主机同样配置dds,其中有一台主机运行publisher,另一台主机运行subscriber</strong></p>
<p>&nbsp;</p>
<p>参考文件</p>
<p><span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">【FastDDS学习笔记】Ubuntu22上安装fastDDS环境_ubutun安装fast dds与cdr 版本对应关系-CSDN博客</span></span></p>
<p><span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">如何在 Ubuntu 20.04 上安装 Java-腾讯云开发者社区-腾讯云</span></span></p>
<p><span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">DDS开源库FastDDS介绍 - 安装 - 知乎</span></span></p><br><br>
来源:https://www.cnblogs.com/peifx/p/17143657.html
頁: [1]
查看完整版本: ubuntu fastdds安装