OpenDDS在Windows10上编译

1、编译前准备

1.1 环境

win10
perl
vs2013

1.2 下载ACE+TAO与OpenDDS

ACE+TAO下载地址:http://download.dre.vanderbilt.edu/
OpenDDS下载地址:http://download.ociweb.com/OpenDDS/

如果需要下载旧版本,提供如下地址:

ACE+TAO:http://download.dre.vanderbilt.edu/previous_versions/
OpenDDS:http://download.ociweb.com/OpenDDS/previous-releases/

注:
1 ACE+TAO下载选择FULL版本。FULL版本包含工程文件,Sources only版本仅包含源代码。
2 Windows下选择*.zip格式,Linux下选择*.tar.gz格式。
3 本次编译版本为ACE+TAO-6.4.1和OpenDDS-3.7。

1.3 安装perl

网上有安装包,直接百度安装就行,注意32位和64位。如果已经安装了,可以在cmd用perl -v命令查看版本。

2、编译安装ACE+TAO和OpenDDS

编译OpenDDS需要ACE+TAO提供支持,所以编译顺序为:ACE->TAO->OpenDDS。

2.1 设置环境变量

本次编译将解压后的ACE+TAO-6.4.1和OpenDDS-3.7放在D盘下DDS文件夹中,位置根据自己习惯而定。

添加ACE_ROOT
OpenDDS在Windows10上编译_第1张图片

添加TAO_ROOT
OpenDDS在Windows10上编译_第2张图片

添加DDS_ROOT
OpenDDS在Windows10上编译_第3张图片

在path中添加路径:

D:\DDS\ACE+TAO-6.4.1\ACE_wrappers\bin
D:\DDS\ACE+TAO-6.4.1\ACE_wrappers\lib
D:\DDS\OpenDDS-3.7\bin
D:\DDS\OpenDDS-3.7\lib

在设置环境变量时注意格式和路径不要出错。

2.2 编译ACE

1 在ACE+TAO-6.4.1\ACE_wrappers\ace文件夹中添加config.h头文件,内容为:

#include "ace/config-win32.h"

2 下载的ACE+TAO-6.4.1\ACE_wrappers中自带了vs的工程文件,可以用合适的vs版本打开然后直接编译,也可以用vs开发人员命令提示符编译。如果用命令提示符编译,进入ACE+TAO-6.4.1\ACE_wrappers,输入命令:

msbuild ACE_vc12.sln/p:Configuration=Debug > build_ace_debug.log

我用的vs2013编译环境,所以用了vc12。编译完成,这里警告可以不用管:
OpenDDS在Windows10上编译_第4张图片

2.3 编译TAO

msbuildTAO_ACE_vc12.sln /p:Configuration=Debug > build_tao_debug.log

OpenDDS在Windows10上编译_第5张图片

2.4 编译DDS

1 在D:\DDS\OpenDDS-3.7中修改configure文件,在第356行(具体行数根据后面执行./configue的结果)添加代码:

$opts{'compiler_version'} = "vc12";

然后用vs开发人员命令控制符进入D:\DDS\OpenDDS-3.7,命令:

configure

此时会生成vs工程文件,可以选择在vs里面编译,也可以在命令控制符里编译。命令:

msbuild DDS_vc12.sln/p:Configuration=Debug > build_dds_debug.log

OpenDDS在Windows10上编译_第6张图片
此时,所有源文件编译完成。

3、测试

进入D:\DDS\OpenDDS-3.7\examples\DCPS\Messenger_Imr,运行run_test.pl:
在这里插入图片描述

此时会出现信息,最后出现test PASSED表示OpenDDS环境搭建成功。

OpenDDS在Windows10上编译_第7张图片

后记:

搭建过程是一个比较繁琐的过程,中间也走了许多弯路,前前后后花了好几天,最终测试通过真的很开心。上述步骤会因为不同的版本,不同的系统而不同,但整体流程是这样,如果编译过程中出现文中没有提及的问题或者错误,需要自己静下心去排错,其实很多问题只是一些自己忽视了的小问题。谨以此文记录这几天的编译过程。

你可能感兴趣的:(OpenDDS,DDS,Windows10,发布/订阅系统)