跟我从头学TAO编程系列
获取并编译TAO
Stone Jiang
如果您对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. 下载源代码
从TAO官方网站 http://www.cs.wustl.edu/~schmidt/TAO.html 进入,您可以看到Obtainning TAO(获得TAO)链接。进入后,可以看到下载页面。
当前版本是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上留言。
email: 2005119@gmail.com
bbs: http://www.ace-tao.org/bbs
分享到:
相关推荐
跟我从头学TAO编程.pdf
1. **GCC编译器**:用于C++和C语言的编译。 2. **Git**:用于获取MOOS-IVP的源代码。 3. **Make**:构建和管理项目。 三、安装MOOS-IVP 1. **克隆源代码**:使用Git从官方仓库克隆MOOS-IVP源代码。 2. **配置和编译...
教程名称:Photoshop从头学起课程目录:【】Photoshop从头学起第(1-10)【】Photoshop从头学起第(11-20)【】Photoshop从头学起第(21-30)【】Photoshop从头学起第(31-40)【】Photoshop从头学起第(41-50)【】Photoshop...
跟我从头学WSh跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar
本篇将深入讲解如何使用`MediaPlayer`来实现音频播放,并通过示例代码帮助理解其工作原理。 `MediaPlayer`是一个强大的音频播放器,它可以播放本地文件、网络流媒体、甚至是Android资源文件(如R.raw中的音频)。...
从头学XML和Java编程一例通.part2.rar
### 从头建立交叉编译工具链:详细指南 #### 一、交叉编译基础知识 **交叉编译**是指在一个平台上编译出另一个平台可执行的代码。这通常发生在目标平台资源有限,无法直接在其上进行编译时。在嵌入式开发领域,...
【标题】: "手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip" 这个压缩包文件包含了搭建微服务开发环境所需的基础软件,包括JDK(Java Development Kit)和MySQL数据库。...
《从头写一个RISC-V操作系统》...总之,《从头写一个RISC-V操作系统》课程配套资源将提供丰富的学习材料,帮助学习者从理论到实践,全面了解并掌握操作系统设计的各个方面,为今后的计算机系统开发和研究打下坚实基础。
编程对于好多人来说开始接触学习的方法好凌乱 所以我整理了7种从头开始免费学习编程的方法.txt
从头学XML和Java编程一例通.part1.rar
在IT领域,Visual Basic 6.0(VB6)是一款经典的事件驱动编程环境,由Microsoft公司推出,主要用于开发Windows桌面应用程序。"悬挂式窗口"是Windows界面设计中的一个概念,通常指的是那些可以自由移动,不固定在父...
由于Linux内核遵循GNU通用公共许可证(GPL),任何人都可以自由地获取、修改并分发源代码,这为开发者提供了极大的灵活性。 #### 二、Linux内核版本管理 Linux内核版本通常由三个数字组成:`x.y.z`。其中: - `x` ...
这个"ltp-3.4.0 mac编译包"可能是作者在Mac 10.14.3上编译好的LTP版本,对于不想从头编译的人来说,可以直接下载并尝试运行。然而,由于每个系统的具体环境差异,使用这个预编译包前最好先了解其编译和运行的条件,...
【28Job-V1.0源码】是一个商业级别的编程源码,主要针对的是网站开发领域,特别是招聘类网站的构建。28Job系统可能是基于PHP或其他编程语言开发的,因为PHP是许多商业网站开发中常用的后端语言,尤其是对于需要...
【标题】"从头开始学习Python编程语言课程100节课44小时视频代码项目和聊天组前端后端基础知识AI测试.zip" 提供了一个全面的Python学习资源,涵盖了从入门到进阶的完整过程,共计100节课,时长44小时。这表明课程...
Combo1.ListIndex = SendMessage(Combo1.hwnd, CB_FINDSTRING, -1, ByVal CStr(Left(Combo1.Text, iStart))) ' 发送CB_FINDSTRING消息 If Combo1.ListIndex = -1 Then iLeftOff = Len(sString) Combo1.Text = s...
在编程领域,编译原理是理解计算机语言处理过程的关键部分,它涉及词法分析、语法分析、语义分析以及代码生成等多个步骤。本项目聚焦于词法分析阶段,使用C++语言来实现这一过程。 词法分析,也称为扫描或...
赖世雄英语从头学 下载-附件资源
从头学XML和Java编程一例通.part3.rar