OpenDDS的安装过程比较复杂,现把安装过程做个记录以备不时之需。OpenDDS的安装分为三个部分:安装Perl、安装ACE+TAO、安装DDS。以下为安装记录。安装主要在Windows环境下进行。
1、环境依赖
OpenDDS的安装需要要求环境中安装有Visual Studio、Perl、ACE+TAO。
1.1、Visual Studio
OpenDDS是一款C++实现的开源软件,所以需要VC++编译器。OpenDDS支持的Visual Studio的版本如下所示:
这里直接安装使用Visual Studio2012。Visual Studio版本对应关系:
1.2、Perl
OpenDDS是一款跨平台的开源软件,考虑到不同用户的平台和开发环境的需要,使用跨平台语言Perl作为脚本语言。在perl官网上下载ActiveState Perl版本:https://www.activestate.com/products/activeperl/downloads/,选择最新版下载。下载完成之后,直接安装即可。
安装完成之后,cmd输入perl -v进行验证:
出现以上提示,说明安装成功。
1.3、ACE+TAO
1.3.1、下载ACE+TAO
访问下载地址:http://download.dre.vanderbilt.edu/。下载6.3.0的Full版本的ACE+TAO,因为在6.3.0版本中已经编译好了vs2012的工程,下载Full版本,并进行解压,解压出来的文件夹名称为ACE_wrappers:
如上图所示,已经包含了ACE_vc11.sln和ACE_vc12.sln工程文件。
将下载好的压缩文件解压到对应的文件目录下,然后在系统中添加环境变量:
ACE_ROOT: C:\OpenDDS\ACE_wrappers
TAO_ROOT: C:\OpenDDS\ACE_wrappers\TAO
然后在环境变量Path中添加路径:%ACE_ROOT%\lib;%ACE_ROOT%\bin
添加完环境变量重启一下电脑。
1.3.2、编译ACE
当ACE+TAO的环境配置好之后,在%ACE_ROOT%\ace目录下新建一个名为config.h的文件,在文件中添加如下内容:#include “ace/config-win32.h”,表示在win32环境下使用。
(使用源文件sourceonly版本时会使用该命令: 通过mwc命令生成ACE的工程文件:mwc.pl -type vc11 -name_modifier “ACE_vc11” ACE.mwc,-type指定编译器的版本为vc11(vs2012),-name_modifier指定生成的工程名称为ACE_vc11:
当命令执行完成之后就会在%ACE_ROOT%下生成ACE_vc11.sln的工程文件,使用VS2012打开该工程,然后进行编译);
Full版本工程文件已经生成好了,直接使用VS2012命令行进行编译:msbuild ACE_vc11.sln /p:Configuration=Debug > build_ace_debug.log;编译生成的日志信息都输出到了build_ace_debug.log文件中,可以在同目录下找到。
进入vs2012的命令行提示,输入以下命令:msbuild ACE_vc11.sln /p:Configuration=Debug > build_ace_.log,等待一段时间之后,编译完成:
可以打开build_ace_.log文件查看编译结果:
1.3.3 编译TAO
还是在vs2012命令行提示,先进入到TAO的目录:%TAO_ROOT%,然后编译TAO的工程文件,输入以下命令:msbuild TAO_ACE_vc11.sln /p:Configuration=Debug > build_tao_debug.log,等待一段时间(时间挺长的)编译生成的文件保存在build_tao_debug.log文件中。
2、OpenDDS
2.1、安装OpenDDS
当所有的依赖环境安装完毕之后,就可以进行OpenDDS的安装了。首先下载OpenDDS源文件,下载网址:http://opendds.org/,我下载的是OpenDDS-3.13.1 的windows版本,下载并解压至相应目录,如C:\OpenDDS:
将根目录添加进系统环境变量中:
DDS_ROOT = C:\OpenDDS\OpenDDS-3.13.1
在path中添加路径:%DDS_ROOT%\lib和%DDS_ROOT%\bin
添加完成之后重启一下电脑。
2.2、编译OpenDDS
进入vs2012命令提示,切换到OpenDDS安装目录%DDS_ROOT%,输入configure.cmd命令:
上图提示为找到合适的visual studio版本,所以需要在文件中修改一下,打开目录中config文件,然后在对应位置添加如下语句:$opts{'compiler_version'} = "vc11";(其中vc11为vs2012的版本号)如下所示:
添加之后保存,重新运行configure.cmd命令:
然后输入msbuild DDS.sln /p:Configuration=Debug > build_dds_debug.log命令编译DDS.sln工程文件:
等待一段时间(挺长的一段时间),编译完成,查看build_dds_debug.log日志文件:
编译出来有错误,查看源码发现是在tests\face文件夹下的项目中,相关结构体中元素未定义,暂时不知是什么原因。
3、验证
当编译完成之后,虽然编译过程有错误,但是仍然可以测试验证一下OpedDDS是否安装成功。
切换到%DDS-ROOT%\examples\DCPS\Messager_Imr文件夹,然后输入run_test.pl,回车:
当出现test PASSED提示,则说明OpenDDS安装成功。