OpenDDS环境搭建-Windows 10

OpenDDS环境搭建-Windows 10

安装环境:windows 10 64位
已安装 :Visual Stdio 2017、Visual Stdio 2019
需安装:Perl、ACE+TAO、OpenDDS

到这个网站下载微软的软件很方便:https://msdn.itellyou.cn/
ActivePerl 下载地址 https://www.activestate.com/products/perl/downloads/
ACE+TAO 下载地址 https://download.dre.vanderbilt.edu/previous_versions/
OpenDDS 下载地址 https://opendds.org/
官方文档:
http://download.objectcomputing.com/OpenDDS/OpenDDS-latest.pdf
对应版本:
ActivePerl-5.28.msi
ACE+TAO-6.5.12.zip
OpenDDS-3.14.zip
这些版本对应很重要,我做的时候有一次最后编译OpenDDS的时候提示ACE+TAO的版本太低了,导致重新编译。(已编译过多种版本)


第0步:安装Visual Studio 2017,并安装Windows SDK

(版本号的对应,对后续工程编译很重要)
在这里插入图片描述

在这里插入图片描述本人不了解VS,看网上基本上都选了C++桌面开发和Windows通用开发,还有右侧的SDK。

第一步:安装Perl

ActivePerl的安装一路默认即可,这里就不赘述
perl下载地址:https://www.activestate.com/activeperl/downloads
1 选择windows下64位对应安装包
2 解压
3 直接安装(安装时默认勾选添加到环境变量,不用取消)
4 验证Perl:
命令行输入: perl –v
打印perl版本信息表明安装成功
在这里插入图片描述

第二步:安装ACE+TAO

安装前的准备工作:
下载地址:http://download.dre.vanderbilt.edu/
选择 第三行 full 版本 进行下载,然后解压完成后会在指定目录下生成 ACE_wrappers 文件夹,该文件夹即我们需要的。
在这里插入图片描述

0.解压安装包.

在这里插入图片描述

1.设置环境变量


1)系统变量

ACE_ROOT F:\J18-ZaiJian\ACE_wrappers
TAO_ROOT %ACE_ROOT%\TAO
MPC_ROOT %ACE_ROOT%\MPC
DDS_ROOT F:\J18-ZaiJian\OpenDDS-3.14
LD_LIBRARY_PATH %DDS_ROOT%\lib
PERL5LIB %DDS_ROOT%\bin\PerlDDS
在这里插入图片描述

2)Path变量

在Path中添加:中添加:
%ACE_ROOT%\lib
%ACE_ROOT%\bin
%DDS_ROOT%\lib
%DDS_ROOT%\bin
在这里插入图片描述

3)可以检查下环境变量是否全部设置好了.

命令行执行:%DDS_ROOT%\setenv.cmd //设置并显示所有的环境变量配置

命令行执行:%DDS_ROOT%\setenv.cmd后显示所有的环境变量配置


环境变量设置为下面路径大体如下:
:: OpenDDS configure script: configure
set ACE_ROOT=F:\J18-ZaiJian\ACE_wrappers
set MPC_ROOT=F:\J18-ZaiJian\ACE_wrappers\MPC
set PATH=%PATH%;F:\J18-ZaiJian\ACE_wrappers\bin;F:\J18-ZaiJian\OpenDDS-3.14\bin;F:\J18-ZaiJian\ACE_wrappers\lib;F:\J18-ZaiJian\OpenDDS-3.14\lib
set TAO_ROOT=F:\J18-ZaiJian\ACE_wrappers\TAO
set DANCE_ROOT=unused
set CIAO_ROOT=unused
set DDS_ROOT=F:\J18-ZaiJian\OpenDDS-3.14
在这里插入图片描述

第三步:安装ACE+TAO

为什么要安装ACE+TAO?------------------------------------------
ACE 全称 ADAPTIVE Communication Environment(自适应的网络通讯环境),是一个面向对象、非常优秀的用来构建高性能、跨平台的网络应用开发的工具包,
它实现了通信软件的基本设计模式。TAO是基于ACE的对CORBA的一种实现。
简单的说:OpenDDS基于ACE+TAO。

0.打开VS2017的开发人员命令提示符,大致在菜单的如下位置:

a)顺便了解:工程文件 和 VS版本 对应关系;
在这里插入图片描述

b)再次确定是否已经完成设置环境变量(系统变量):
ACE_ROOT 值 F:\J18-ZaiJian\ACE_wrappers
TAO_ROOT 值 %ACE_ROOT%\TAO
Path中添加: %ACE_ROOT%\lib; %ACE_ROOT%\bin
在F:\J18-ZaiJian\ACE_wrappers\ace,新建一个文件config.h,并添加内容:

#include "ace/config-win32.h"

新建一个文件config.h

1.编译ACE

进入到%ACE_ROOT%目录下,可以看到有几个类似于ACE_vs2017.sln的文件,因为我们安装的是VS2017,所以我们执行的目标文件是:ACE_vs2017.sln
打开VS2017的开发人员命令提示符执行:

msbuild ACE_vs2017.sln /p:Configuration=Debug;Platform=x64 /m:2

参数:
Configuration=Debug代表Debug编译,Configuration=Release代表Release编译;
Platform=x64代表强制编译为64位版本;
/m:2 代表使用两个线程并行编译,这个数越大编译的越快.我建议这个数比CPU核数少一个比较好。当然如果超过CPU核数是没有意义
在这里插入图片描述


**

两种方法编译ACE( 编译时长大概为半个小时或更久 )

**

法1:如下图ACE_wrappers目录下会有许多VS工程目录,由VS打开对应版本的.sln文件(双击文件),开始编译;
法2:利用 VS命令行进行编译

命令:msbuild ACE_vs2017.sln /p:Configuration=Debug /p:platform=x64 /maxcpucount:8 > build_ace_debug.log

注意 替换命令中 ACE_vs2017.sln 选项;编译过程无任何提示,完成后会在目录下生成 build_ace_debug.log 日志文件,一般不会产生错误。
在这里插入图片描述

2.编译TAO( 编译时长大概为一个小时或更久 )
继续使用刚才命令行,切换到 F:\J18-ZaiJian\ACE_wrappers\TAO 目录下,可以看到有几个类似于TAO_ACE_vs2017.sln的文件,编译方法同上,下面是使用命令行编译TAO的方法:
命令:msbuild TAO_ACE_vs2017.sln /p:Configuration=Debug /p:platform=x64 /maxcpucount:8 > build_tao_debug.log

编译过程无任何提示,完成后会在目录下生成 build_tao_debug.log 日志文件,一般不会产生错误。
精简命令:msbuild TAO_ACE_vs2017.sln /p:Configuration=Debug;Platform=x64 /m:2

这里面的Configuration、Platform必须和编译ACE_vs2017.sln的一致。
在这里插入图片描述

**

第四步:安装OpenDDS

**
下载地址:http://opendds.org/
1.下载最新版本
解压到 F:\J18-ZaiJian\OpenDDS-3.14

2.再次确认已经添加环境变量(系统变量)
添加 DDS_ROOT 值 F:\J18-ZaiJian\OpenDDS-3.14
Path 中添加 %DDS_ROOT%\lib;%DDS_ROOT%\bin

3.使用vs开发者命令行(上面使用的命令行工具),切换到F:\J18-ZaiJian\OpenDDS-3.14文件夹,
命令:cd %dds_root%
//此命令也可换成cd F:\J18-ZaiJian\OpenDDS-3.14

命令:perl configure

4.这里也许会出现错误,提示VS版本不对,按照提示找到对应文件(configure.sh文件)对应行修改即可[工程文件与VS版本对应见上表]
1)找到如下内容:

$opts{'compiler_version'} = $platforminfo{'win32'}->{'cl_versions'}->{$ver};

2)因为我们使用的是vs2017,所以将该内容替换成:

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

5.修改完成以后,仍然使用VS2017的开发人员命令提示符,进入%DDS_ROOT%目录,再次执行:
命令: perl configure

执行后成功之后会在当前目录下生成了DDS_no_tests.sln(即VS工程文件)和setenv.cmd两个文件.
6.在命令行执行setenv.cmd设置环境变量。

./setenv.cmd

7.两种方式进行最后一步编译:
a)第一种,继续输入命令 进行编译:

msbuild DDS_no_tests.sln /p:Configuration=Debug /p:platform=x64 /maxcpucount:8 > build_dds_debug.log 

编译时长大概一个小时或更久,完成后会在目录下生成 build_dds_debug.log 日志文件,一般不会产生错误。
b)第二种,双击DDS_no_tests.sln直接用vs2017打开进行编译。
注意vs编译前,记得配置一下vs2017.
注意vs编译前,记得配置一下vs2017.

PS:上述这个图只是举个例子,不是本项目。用来帮助理解提示我的VS2017傻瓜操作:

1处右键打开属性,配置属性 > VC++目录 > 常规 > 包含目录中添加
    F:\J18-ZaiJian\OpenDDS-3.14
    F:\J18-ZaiJian\ACE_wrappers
    F:\J18-ZaiJian\ACE_wrappers\TAO
在5处选择Debug或Release;
在6处选择平台位数;
在7处执行解决方案目标;
在8处生成解决方案或重新生成解决方案,即开始编译。

8.[特别注意]当时为了编译能够成功,我做了如下的傻瓜操作,希望能给你帮助.

1)双击DDS_no_tests.sln即可用vs2017打开,会发现 
		vs2017对应的解决方案DDS_no_tests.sln有31个项目.
2)点击每一个项目名称,右键打开属性,配置属性 > VC++目录 > 常规 > 包含目录中添加
		F:\J18-ZaiJian\OpenDDS-3.14
		F:\J18-ZaiJian\ACE_wrappers
		F:\J18-ZaiJian\ACE_wrappers\TAO
3)vs2017点击项目(p)\重定向项目\选择windows SDK版本:10.0.17763.0\确认\
4)vs2017点击生成(B)\生成解决方案
5)命令执行验证一下vs2017编译怎么样了: 
命令:msbuild DDS_no_tests.sln /p:Configuration=Debug;Platform=x64 /m:2

在这里插入图片描述

## 9.验证

切换到 %DDS_ROOT%\example\DCPS\Messenger_Imr 目录
运行:

perl run_test.pl

如果提示 test PASSED 则表示成功,
OPenDDS环境至此搭建完成。

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值