如果您对TAO有一定了解,却不知如何驾驭它,那请跟我来从头学学TAO编译。

如果您对TAO还不是非常了解的话,请跟我来,一起对TAO有一个初步的认识。

TAO简介

TAO (The ACE Orb) 是Douglas C. Schmidt教授领导下DOC (Distributed Object Computing (DOC) Group)发布和维护的开源项目,它是基于ACE实现的、符合CORBA规范的对象请求代理。

ACE被设计成为跨平台的开发包及框架,因此TAO也继承了这一特征。TAO能应用于多种操作系统以及多种编译环境。

TAO已被广泛地应用于以下领域:指挥与控制、电信、数据通讯、医药工程、分布式交互仿真以及金融服务等。TAO在实时应用领域有着广泛地应用和举足轻重的地位。

TAO为开发人员带来的好处

开发人员利用TAO,可以只专注于业务领域本身的实现。TAO为开发人员提供了大量的“开箱即用(Out of Box)”的功能,复杂的与业务领域无关的问题TAO已经完成。

获得TAO

编译TAO的步骤 准备工作

下载源代码

设置环境变量

配置编译选项

生成工程文件 (*.sln, *.vcproj/ makefile)

编译生成

1. 准备工作

编译TAO需要perl,请下载安装perl语言运行环境。Windows用户可以使用active perl.

2. 下载源代码

当前版本是x.6.6

DOC提供了不同的版本以及每个版本的不同压缩方式。

这里我们选择 x.6.6版的zip文件的发布包,只含源代码的版本。下载链接如下:HTTP

下载后,我们获得了

我们把它解压至硬盘,我这里以E:/ACE_wrappers为例.

3. 设置环境变量 (以Windows XP为例)

本节内容以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,它比本节更详细。

4. 配置编译选项

本节以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 */

5. 生成工程文件

由于我们只下载了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文件

如下图

6. 编译生成

最后用Visual Studio 2008打开TAO_ACE.sln,即可编译ACE,TAO。

下图是我的编译结果

从%ACE_ROOT%/lib中可以看到

至此,ACE,TAO已生成完毕。

后续我们将一起学习和演练如何使用TAO编写应用程序。

有任何问题可以给我来邮件或在BBS上留言。

tao的开源代码_获取并编译TAO相关推荐

  1. DHCPV6 开源代码如何获取device的MAC

    DHCPV6 开源代码如何获取MAC DHCPv6代码使用数据包套接字,收到的报文已经剥除MAC帧头,所以无法获得对端client 的MAC地址.这边给出几个办法获取 使用原始套接字, 协议栈的原始套 ...

  2. 波士顿动力开源代码_失去动力两年后,我如何开始开源之旅

    波士顿动力开源代码 by Hemakshi Sachdev 通过Hemakshi Sachdev 失去动力两年后,我如何开始开源之旅 (How I started my open source jou ...

  3. 用户管理界面开源代码_商城系统开源代码对于企业有利还是有弊?

    对于商家来说,商城系统或许了解得比较多,却极少听说过"源码",面对互联网的冲击,传统企业发展不景气,只能痛定思痛进行转型,大多数传统企业选择了开源代码搭建商城网站,那么有很多的人会 ...

  4. 图像识别开源代码_灰度图像着色开源代码

    Victory组近期整理了灰度图像着色开源代码,文章刊登于<中国计算机学会计算机视觉专委会简报>2019年第2期上. 灰度图像(gray image)是每个像素只有一个采样颜色的图像,即单 ...

  5. android 登录界面开源代码_【程序源代码】一个安卓查询类app制作的开源项目

    " 关键字:工作流 框架 springboot" 正文:一个学习安卓查询类app制作的开源项目.可以用来联系查询类app的编写. 01 - android studio最近势头好猛 ...

  6. 波士顿动力开源代码_学生为这所开源高中提供动力

    波士顿动力开源代码 我怀疑您在高中的许多日子看起来都是这样的:一位成年老师站在一间方形教室的前面,讲课或画画,大量的事实,数字和日期流入排列整齐,排列整齐的网格中书桌. 在老师讲课时,学生对笔记无动于 ...

  7. python运行微软图标代码_获取windows程序图标并将其另存为.png Python

    下面我有一些代码,获取一个.exe文件,从中获取图像,并将其保存为.bmp文件.这很好,但我需要保存.bmp与原来的透明背景.exe文件图标.有没有方法可以修改下面的代码来做到这一点?在 代码:def ...

  8. 太吾绘卷开源代码_请注意代码的来源:开源太多了?

    太吾绘卷开源代码 这可能是一个难以理解的问题,但是您知道您的代码来自哪里吗? 在安全方面,这是比开发人员可能认为更重要的因素. 最近的安全漏洞(例如2017年的Equifax惨败)凸显了谨慎使用开源软 ...

  9. 罗马复兴开源代码_社区主导的开源复兴

    罗马复兴开源代码 从定义上讲,早期的免费软件和开放源代码社区是由社区主导的,很少有商业参与者. 软件是由用户社区根据他们的需求和灵感而有机设计和创建的. 结果在一定程度上没有人预料到,通常是神奇的. ...

最新文章

  1. 巴塞罗那自治大学3D视觉课件
  2. Python--day60--一个简单(不完整)的web框架
  3. 全面认识Small Cell
  4. python 多文件知识
  5. 服务器芯片镜像测试,模拟镜像服务器磁盘问题的两个测试【转】
  6. Oracle 20c 新特性详解:SQL Macro 宏 SCALAR / TABLE 模式带来的敏捷和便利
  7. bes2300 tws配对_tws 耳机春天来了!
  8. python calendar.isleap_Python calendar isleap()用法及代碼示例
  9. HALCON 20.11:学习笔记---一维测量(Measuring)
  10. FCKeditor 2.6.4.1配置
  11. wpf之内容超出布局是用滚动条
  12. Linux ---yum源详解
  13. 计算机操作系统笔记(一)
  14. d3 svg path添加文本_svg演示kafka的broker和zookeeper动态交互
  15. Anaconda 更新pip版本
  16. 小米手机隐私相册在哪?将你的照片锁进“保险柜”
  17. prayaya v3-国产神操作系统
  18. 美国大学计算机理论专业phd,专家:美国大学计算机专业PHD申请难度有多大
  19. [2022 ICLR] Pyraformer: Low-Complexity Pyramidal Attention for Long-Range 时空序列建模和预测
  20. RepeatMasker的安装与使用(一)

热门文章

  1. Thymeleaf从后端取数据到js中 js中字符串转数字的函数应用
  2. cosine_annealing
  3. jdk8 list Stream groupingBy 分组之后 利用 reducing 求和 BigDecimal
  4. oracle12c安装过程
  5. Android N开发 你需要知道的一切
  6. 大疆无人机飞控软件介绍
  7. Webshell的预防措施
  8. 经典家用游戏机启动画面Top10
  9. MBA提前面试:商学院看重软实力
  10. How to manually generate ssl certificate for own site in Linux