2022-VS2015-ACE+TAO(7.0.5)+CIAO+OpenDDS 3.16 编译

3 篇文章 0 订阅
1 篇文章 0 订阅

ACE+TAO(7.0.5)+CIAO+OpenDDS 3.16 编译

采用ACE+TAO(7.0.5)、CIAO(3.10)-DANCE、OpenDDS-3.16,编译构建OpenDDS系统。本文目的尽量简洁说明ACE+TAO+CIAO+DANCE+OpenDDS构建过程,方便快速生成应用环境。
内容:需要的工具、依赖项目配置、目录组织、环境变量、配置项目依赖mpb、生成VC项目的顺序、处理异常。

1、工具:

vs2015,
ActiveState+Perl 5.34。注意:安装ActivePerl5.28,可生成项目。

2、依赖项目:

解压到OpenDDS\ACE_wrappers\contrib目录下,方便生成。
(1)boost 1.68:添加环境变量 ,
BOOST_ROOT : %ACE_ROOT%\contrib\boost
BOOST_VERSION :1_68
注意:boost 的 include实际路径,%ACE_ROOT%\contrib\boost\include%BOOST_VERSION%\boost
(2)bison-flex:下载bison 2.7,解压到contrib;环境变量
path += %ACE_ROOT%\contrib\bison-flex
(3)libcutl:添加环境变量
CUTL_ROOT : %ACE_ROOT%\contrib\libcutl
(4)openssl 添加环境变量
OPENSSL_ROOT :%ACE_ROOT%\contrib\openssl
(5)xercesc-3.2.3 添加环境变量
XERCESCROOT :%ACE_ROOT%\contrib\xercesc-3.2.3
(6)XSC-master 添加环境变量
https://www.codacy.com/gh/DOCGroup/XSC
XSCROOT:%ACE_ROOT%\contrib\XSC-master
(7)zlib1.2.11 添加环境变量
ZLIB_ROOT : %ACE_ROOT%\contrib\zlib1.2.11

3、配置环境变量

1)目录结构

yourdir:是你的目录。
yourdir
| -ddssrc : 根,OpenDDS的代码目录
|- ACE_wrappers ACE 代码目录
|- TAO TAO 代码目录
|- CIAO CIAO 目录
|- DANCE DaNCE 目录

2)环境变量

ACE_ROOT : yourdir\DDSsrc\ACE_wrappers
TAO_ROOT :%ACE_ROOT%\TAO
CIAO_ROOT:%ACE_ROOT%\TAO\CIAO
DANCE_ROOT: %ACE_ROOT%\TAO\CIAO\DAnCE
DDS_ROOT:yourdir\DDSsrc

3)在path环境变量中添加

%ACE_ROOT%\MPC
%TAO_ROOT%\bin
%ACE_ROOT%\bin
%ACE_ROOT%\lib
%DDS_ROOT%\lib
%DDS_ROOT%\bin

4、配置ace

1)添加 ACE_wrappers\ace\config

2)配置 ACE_wrappers\bin\MakeProjectCreator

(1) 修改 ACE_wrappers\bin\MakeProjectCreator\global.features

ssl = 1
java = 1
zlib = 1
boost = 1
xerces3 = 1

x11 = 0
gl = 0

ace_qtreactor = 0
ace_xtreactor = 0
ace_tkreactor = 0
ace_flreactor = 0
ace_foxreactor = 0
(2) 修改 ACE_wrappers\bin\MakeProjectCreator\vc14.features
qos=1
rwho=0
sctp=0
ssl=0
qt4=0
qt5=0
dummy_label=0
wx=0
fl=0
tk=0
xt=0
zlib=1
xerces3=1
boost=1
mfc=1
cutl=1

3)配置 ACE_wrappers\MPC\config

(1) 添加 ace_svcconf_gen.mpb 文件

 // -*- MPC -*-
project {
  includes += $(ACE_ROOT)/contrib/bison-flex
}

(2) 修改 bison.mpb 文件

project {
  requires += win_bison

4、编译生成

1)使用mwc.pl脚本创建VC项目

启动cmd/powershell,命令行如:

perl %ACE_ROOT%\MPC\mwc.pl -type vc14 .\your_mwc.mwc。

2)创建并编译VC项目

(1)TAO_ACE
构建生成 ACE & TAO

cd %TAO_ROOT%
perl %ACE_ROOT%\MPC\mwc.pl -type vc14 .\TAO_ACE.mwc

(2)CIAO_TAO_DANCE
构建生成 CIAO & DAnCE

cd %CIAO_ROOT%
perl %ACE_ROOT%\MPC\mwc.pl -type vc14 .\CIAO_TAO_DAnCE.mwc

(3)ALL_DDS
构建 ACE TAO DDS

cd %DDS_ROOT%
perl %ACE_ROOT%\MPC\mwc.pl -type vc14 .\ALL_DDS2.mwc

2)处理编译错误

(1)TAO\CIAO\tools\IDL3_to_IDL2\be_helper.cpp
报错误宏参数太多。

ACE_OSCALL (::vfprintf (this->fp_,
                          format,
                          ap),
              int,
              -1,
              result);

修改为

ACE_OSCALL(::vfprintf(this->fp_,
	  format,
	  ap),
	  int,
	  result);

(2)CIAO\DAnCE\tools\Config_Handlers\DnC_Dump_T.cpp
在这里插入图片描述
修改:注释掉“val >>= t;”【注意】,注释后可以编译,但错误尚未解决。

 // val >>= t;
 throw -1;

(3)ace\XML_Utils 中缺少 XML_Typedefs.h 、XML_Typedefs.cpp 文件
注意:下载 ACE-TAO 6.5 ,解压并找到这两个文件,将其拷贝到 DDSsrc\ACE_wrappers\ace\XML_Utils 路径下。
将文件添加到 ACE_XML_Utils 项目中。
在这里插入图片描述

5、试验

1)试验DCPS Messager

找到目录:\DDSsrc\tests\DCPS\Messenger,如果没有构建生成publishe\subscriber exe文件,则在 \DDSsrc\ALL_DDS2.mwc 中添加一行:

 $(DDS_ROOT)/tests/DCPS/Messenger/Messenger.mpc

再用mwc.pl创建工程并生成试验程序(详见 4 。)
添加两个配置文件:pub1.ini 、sub1.ini,拷贝和修改sub、pub ini。
sub1.ini注意DCPSInfoRepo=corbaloc::192.168.22.1:12345/DCPSInfoRepo

# sub1.ini
[common]
DCPSDebugLevel=0
# 指定网络地址
DCPSInfoRepo=corbaloc::192.168.22.1:12345/DCPSInfoRepo
# DataWriter的缓存分配器可分配的块数。
DCPSChunks=20
DCPSChunkAssociationMutltiplier=10
# 传播延迟因子
DCPSLivelinessFactor=80
DCPSGlobalTransportConfig=$file

[transport/t1]
transport_type=tcp

pub1.ini

#pub1.ini
[common]
DCPSDebugLevel=0
DCPSInfoRepo=corbaloc::192.168.22.1:12345/DCPSInfoRepo
DCPSChunks=20
DCPSChunkAssociationMutltiplier=10
DCPSLivelinessFactor=80
DCPSGlobalTransportConfig=$file

[transport/t1]
transport_type=tcp

打开cmd 或 powershell
(1) 启动DCPSInfoRepo服务。

DCPSInfoRepo -NOBITS -ORBListenEndpoints iiop://192.168.22.1:12345 -ORBDebugLevel 6 -ORBLogFile DCPSLog.log

DCPSInfoRepo -ORBListenEndpoints iiop://192.168.22.1:12345 -ORBDebugLevel 6 -ORBLogFile DCPSLog.log

(2)启动subscriber

.\subscriber.exe -DCPSConfigFile .\sub1.ini

(3)启动publisher

.\publisher.exe -DCPSConfigFile .\pub1.ini
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值