TAO (The ACE Orb) 是Douglas C. Schmidt教授领导下DOC (Distributed Object Computing (DOC) Group)发布和维护的开源项目,它是基于ACE实现的、符合CORBA规范的对象请求代理。
ACE被设计成为跨平台的开发包及框架,因此TAO也继承了这一特征。TAO能应用于多种操作系统以及多种编译环境。
TAO已被广泛地应用于以下领域:指挥与控制、电信、数据通讯、医药工程、分布式交互仿真以及金融服务等。TAO在实时应用领域有着广泛地应用和举足轻重的地位。
开发人员利用TAO,可以只专注于业务领域本身的实现。TAO为开发人员提供了大量的“开箱即用(Out of Box)”的功能,复杂的与业务领域无关的问题TAO已经完成。
编译TAO的步骤
编译TAO需要perl,请下载安装perl语言运行环境。Windows用户可以使用active perl.
从TAO官方网站 http://www.cs.wustl.edu/~schmidt/TAO.html 进入,您可以看到Obtainning TAO(获得TAO)链接。进入后,可以看到下载页面。
当前版本是x.6.6
DOC提供了不同的版本以及每个版本的不同压缩方式。
这里我们选择 x.6.6版的zip文件的发布包,只含源代码的版本。下载链接如下:HTTP
下载后,我们获得了
我们把它解压至硬盘,我这里以E:/ACE_wrappers为例.
本节内容以XP为例,Linux请在~/.bashrc中设置环境变量,并修改LD_LIBRARY_PATH的值。
编译TAO需要设置以下环境变量
新增
ACE_ROOT = E:/ACE_wrappers
TAO_ROOT = %ACE_ROOT%/TAO
修改PATH
PATH = %ACE_ROOT%/bin;%ACE_ROOT%/lib;..... 其他原来的保持不变
设置环境变量的方法如下:我的电脑=>属性=>高级=>环境变量=>系统变量=>新建
环境变量设置不当将直接影响以后的编译和开发。用以下方法检查是否正确
进入Dos Shell (开始==> 运行==> cmd)
> echo %ACE_ROOT%
如果提示为
E:/ACE_wrappers即设置正确,如下图
在Dos shell中输入
> PATH
确保 E:/ACE_wrappers/lib以及E:/ACE_wrappers/bin出现在在 PATH环境变量中。
环境变量设置后,我们先查看以下几个重要的文件
进入%ACE_ROOT%
我们可以看到
VERSION文件,
用UltraEdit或其它文本编辑器查看,可以确认下载的源代码的版本
This is ACE version 5.6.6, released Mon Sep 15 06:08:04 CDT 2008
ACE-INSTALL.html 文件
这个文档详细描述了如何安装ACE及TAO,它比本节更详细。
本节以XP, Visual Studio 2008为例
进入%ACE_ROOT%/ace目录,创建一个名为config.h的文件,文件内容如下
#include "ace/config-win32.h"
我的config.h内容如下
// -*- C++ -*-
#ifndef ACE_CONFIG_H
#define ACE_CONFIG_H
#define ACE_DISABLE_WIN32_ERROR_WINDOWS
#define ACE_DISABLE_WIN32_INCREASE_PRIORITY
#define ACE_HAS_MFC 1
#include "ace/config-win32.h"
#endif /* ACE_CONFIG_H */
由于我们只下载了ACE,TAO,CIAO的源代码,因此下载包在没有编译需要的工程文件。这里给大家初步介绍一个学习和应用ACE,TAO不可不掌握的工具MPC,我们可以用MPC生成适我们的工程文件。
MPC全称为Multi Project Creator,即多平台项目工程文件生成工具。这是ACE开发组织为了方便代码在多个平台下移植提供的工具。我们先不深入其中,直接用它即可。
进入%TAO_ROOT%
查看TAO_ACE.mwc
在Dos Shell中输入以下指令,即可生成 Visual Studio 2008(vc9)所需要的vcproj和sln文件
> mwc.pl -type vc9 ACE_TAO.mwc
如果以下指定未正常运行,请检查
1) 是否正确安装Active Perl
2) %ACE_ROOT%/bin 是否在 PATH环境变量中
这个过程一般要好几分钟,请耐心等待。
6分半钟后,我得到了TAO_ACE.sln文件
如下图
最后用Visual Studio 2008打开TAO_ACE.sln,即可编译ACE,TAO。
下图是我的编译结果
从%ACE_ROOT%/lib中可以看到
至此,ACE,TAO已生成完毕。