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

2022-VS2015-ACE+TAO(7.0.5)+CIAO+OpenDDS 3.16 编译相关推荐

  1. 构建嵌入式版本的 ACE TAO 6.5.3

    introduction 之前曾在ubuntu 18.04中构建嵌入式版本的ACE TAO 6.5.3. 在之后使用过程中发现, 当升级系统工具链后, ACE TAO 库不兼容本地环境的系统库.具体表 ...

  2. ACE+TAO 通信中间件

      ACE,JACE,TAO,CIAO,JAWS,ZEN     (by huihoo.org Allen) 产品主页 .ACE - The ADAPTIVE Communication Enviro ...

  3. win7下ACE+TAO环境搭建

    平台:win7, 64位,VS2015 步骤: 1. 下载ACE+TAO.zip, 版本:ACE+TAO-6.4.0.zip 下载地址:http://download.dre.vanderbilt.e ...

  4. linux编译ace tao,CentOS环境下ACE编译指南

    CentOS环境下ACE编译指南 1.环境说明: (1)CentOS6.3 (2) ACE6.10 2.编译步骤: (1)定义环境变量: ACE_ROOT=/root/work/cots/ACE_wr ...

  5. linux编译ace tao,ACE_TAO的编译

    ACE TAO在solaris下的编译! 1. 编译需要sun studio 11来完成12好像会报告很多错误. 2. 编译源文件需要为unix格式(否则有很多宏编译失败),而zip解压后其中是dos ...

  6. ACE+TAO环境搭建 windows平台

    最近项目需要用CORBA,记录下windows下ACE+TAO环境搭建,内容为各个地方copy而来,非原创,亲测有效(最近测试时间2019.04.01). 我的平台:win10, 64位,VS2013 ...

  7. 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法...

    注意,64位系统,用64位的补丁文件; https://www.cnblogs.com/A2008A/articles/2438962.html 操作系统:使用的是64位的Windows Server ...

  8. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

    为什么80%的码农都做不了架构师?>>>    错误信息:未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序. 解决办法: 立即下载 ...

  9. “microsoft ace oledb 12.0 未注册”疑云

    1. 有人说: 2015也是要安装32位的AccessDataengine,anycpu选32位优先才行,不然就是Microsoft.ACE.OLEDB.12.0未注册. hanstom,一个老调重弹 ...

最新文章

  1. matlab九节点网络仿真问题,三机九节点电力系统仿真matlab.docx
  2. 网络编程——sockaddr 与 sockaddr_in
  3. javafx动画_JavaFX动画工具
  4. java jar包示例_Java包getImplementationVersion()方法和示例
  5. libpng warning: iCCP: known incorrect sRGB profile
  6. EF Code First 学习笔记:约定配置
  7. 预写式日志 - postgresql之WAL(Write Ahead Log)
  8. CodeSnippet.info 开源说明 和 环境搭建 (第一版)
  9. php static 关键字
  10. qq授权登录。微信授权登录、微博授权登录
  11. 源文件如何一步步到可执行程序【程序员必修课】
  12. 【顿悟】会者定离,一期一祈,勿怀忧也,世相如是.
  13. 国际清算银行:多国央行进行CBDC研究 仅少数推出具体计划
  14. 21个经典的哲理故事
  15. (C语言实现)页面置换——先进先出算法(FIFO)
  16. 基于vs实现的socket—udp图片传送实例详解
  17. 卡罗林斯卡医学院计算机方向,卡罗林斯卡医学院:全球卫生专业受学生欢迎
  18. Moonbeam成功续约新一轮的Polkadot插槽租赁期
  19. java虚拟机臃肿_同样的内核,为什么linux干净稳定,而android臃肿又乌烟瘴气?...
  20. 计算机与日常使用计算器的本质区别,计算机和计算器的区别

热门文章

  1. 移动GM220S光猫超级密码及改桥接模式方法
  2. 共阴极数码管,学号显示实验
  3. 读书笔记 摘自:《为什么精英都是时间控》
  4. 五、从命令行管理文件
  5. 参数方程下的特殊图像
  6. PAT 1124 Raffle for Weibo Followers python解法
  7. java培训班 跟不上_如果去了Java培训班跟不上进度怎么办?
  8. TopBase_Knowledge_Graph
  9. Alpha课堂展示(麻瓜制造者)
  10. 微信小程序导购开发跳转到京东拼多多苏宁唯品会等小程序