因项目需要在不同平台上通信,在对比分析CycloneDDS、OpenDDS以及FastDDS后,结合项目的开发语言和开发平台,决定采用OpenDDS作为通信中间件。然而现阶段网上有效、简洁的安装教程较少,因此把本次OpenDDS的安装过程做个记录,供大家参考。
1、所需软件包下载
1.perl
系统检查指令: perl -v
如果提示没有安装,请下载安装
下载地址:https://www.cpan.org/src/
下载链接:Perl
官网给的安装方法:
wget https://www.cpan.org/src/5.0/perl-5.34.0.tar.gz
tar -xzf perl-5.34.0.tar.gz
cd perl-5.34.0
./Configure -des -Dprefix=$HOME/localperl
make
make test
make install
2.ACE+TAO
下载地址:https://download.dre.vanderbilt.edu/
下载链接:ACE+TAO
下载时注意:
1.ACE+TAO下载选择FULL版本
2.Linux下选择*.tar.gz格式
3.OpenDDS
下载地址:https://download.dre.vanderbilt.edu/
下载链接:OpenDDS
2、ACE+TAO和OpenDDS安装
2.1 解压
将ACE+TAO与OpenDDS解压至/opt目录下:
sudo tar -zxf ACE+TAO-7.1.1.tar.gz -C /opt
sudo tar -zxf OpenDDS-3.25.tar.gz -C /opt
解压完毕后,在/opt目录下已存在ACE_wrappers和OpenDDS-3.25两个文件夹,修改其权限(不修改权限会在编译时出现Permission denied的情况),也可以直接在root用户下安装。
cd /opt
sudo chmod 777 -R ACE_wrappers/
sudo chmod 777 -R OpenDDS-3.25/
2.2 配置用户变量
在home路径下配置用户变量
cd ~
vim ~/.bashrc
输入i进入编辑模式,在文末加入下面的命令(最后两排命令不用改,其他命令要根据自己的安装路径和版本来设置。其中第一行是注释,可以不写):
# ACE+TAO+DDS Environment
export ACE_ROOT=/opt/ACE_wrappers
export TAO_ROOT=$ACE_ROOT/TAO
export DDS_ROOT=/opt/OpenDDS-3.13.2
export PATH=$ACE_ROOT/bin:$DDS_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$ACE_ROOT/lib:$DDS_ROOT/lib:$LD_LIBRARY_PATH
按ESC键退回到一般模式,在按 :wq ,写入退出。
环境变量生效:
source ./bashrc
2.3 配置config.h
新建 $ACE_ROOT/ace/config.h,文件内容为:
#include "ace/config-linux.h"
2.4 配置Platform_macros.GNU
新建 $ACE_ROOT/include/makeinclude/platform_macros.GNU,文件内容为
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
3、编译
3.1 ACE编译
cd $ACE_ROOT
make clean //清除上次的make命令所产生文件,第一次编译可以不运行
make
3.2 TAO编译
cd $TAO_ROOT
make clean //清除上次的make命令所产生文件,第一次编译可以不运行
make
3.3 DDS编译
cd $DDS_ROOT
./configure //DDS配置,有的帖子没有缺少这一步,后面编译会出问题
make clean //清除上次的make命令所产生文件,第一次编译可以不运行
make
4、测试
cd $DDS_ROOT/DevGuideExamples/DCPS/Messenger.minimal
perl ./run_test.pl
终端输出结果如下:
OK,开始享受你的OpenDDS编码吧。