TAO使用指南.docx

上传人:b****5 文档编号:4203835 上传时间:2022-11-28 格式:DOCX 页数:18 大小:23.67KB
下载 相关 举报
TAO使用指南.docx_第1页
第1页 / 共18页
TAO使用指南.docx_第2页
第2页 / 共18页
TAO使用指南.docx_第3页
第3页 / 共18页
TAO使用指南.docx_第4页
第4页 / 共18页
TAO使用指南.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

TAO使用指南.docx

《TAO使用指南.docx》由会员分享,可在线阅读,更多相关《TAO使用指南.docx(18页珍藏版)》请在冰豆网上搜索。

TAO使用指南.docx

TAO使用指南

TAO使用指南

发信站:

BBS水木清华站(ThuMay818:

35:

492003),站内

最近正在将一个工程由Orbix2000向TAO移植.将一些心得和经验奉上,

算是给DOC版做点贡献...说的不对,请大家指正.同时您有什么心得

也不仿写出来嘛:

1.什么是TAO?

TAO是美国华盛顿大学的CORBA界大牛DouglasC.Schmidt博士领导

开发的一个实时CORBA平台.它是一个开放源码项目,所以是完全免费的.

用C++语言开发.符合CORBA2.6版本.

支持语言:

C++

支持平台:

Win32,常见的各种Unix,Linux,实时操作系统如VxWorks

等等.在所有的CORBA平台中,TAO支持的平台应该是最多的.

支持的服务:

Naming,Event,Notification,Security,Time,

Scheduling,Logging,Lifecycle,Trading,Concurrency,Lifecycle,

A/VStreaming,Loadbalancing等.

2.网上的TAO资源

TAO主页:

http:

//www.cs.wustl.edu/~schmidt/TAO.html

OCI公司宣布对TAO进行技术支持:

它出了一本书叫:

TAODeveloper'sGuide,上下两卷,1000页

左右,要250美刀.吐血买了一本...

此外,OCI有自己的TAO发布版本,最新版本号为1.2a.Win32版本

开价50美刀.

OCI有一个TAO的FAQ,很不错,地址:

TAO的MailingList:

tao-users@cs.wustl.edu

MailingListArchive:

3.下载TAO

地址:

http:

//download.dre.vanderbilt.edu/

目前最新的Release版本是1.3

发信人:

Mentoya(钻研Orbix2000中...),信区:

DOC

标题:

TAO使用指南--编译ACE和TAO

发信站:

BBS水木清华站(ThuMay819:

11:

372003),转信

我只用到Win32平台.现在使用的环境是:

WinXPProfessional+MSVCSP5.

在Win32平台下,还可以使用C++Builder来编译和开发TAO.我没有用过.:

-(

参见:

http:

//www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/TAO-INSTALL.html

------------------------------------------------------------------------

TAO完全支持Win32API,(包括WindowsNT,Windows2000,Windows95/98/ME)

VC5.0和VC6.0均可编译。

如果要在BorlandC++Builder中编译,请参见有关文档.

TAO可以被编译成两种版本:

DLL版(动态链接)和LIB版(静态链接)

一.Win32+VC6.0下编译和安装ACE和TAO

将网上下载的TAO软件包解压缩到某个目录,在该目录下会有ACE_wrappers目录。

请按照以下步骤来执行:

1.新建两个环境变量:

ACE_ROOT=ACE_wrappers所在目录;

TAO_ROOT=ACE_wrappers\tao

2.在ACE_ROOT\ace目录下建立一个空文件config.h,里面包含一句:

#include"ace/config-win32.h"

以说明是要在win32平台下进行编译。

注:

(1)#include"config-win32.h"亦可

(2)最好在#include之前加上

#defineACE_HAS_STANDARD_CPP_LIBRARY1以使用MSVC的STL库.

3.如果是98/ME,则在ACE_ROOT\ace\config.h的最前面加上

#defineACE_HAS_WINNT40

来关掉一些NT/2000中特有的代码。

4.如果你想用MSVC的STL库(如iostream,cstdio等),则在config.h文件

中的#include语句前添加下面的行:

#defineACE_HAS_STANDARD_CPP_LIBRARY1

注:

推荐使用该编译开关.否则对新手而言,在自己的工程中使用MSVC的STL

库时会有一些小麻烦.

5.如果在ACE中要使用MFC的库,则需要在config.h中添加:

#defineACE_HAS_MFC1

在默认情况下,所有的ACE工程使用的是MSVC的DLL文件作为运行时库。

你可以选择使用ACE的静态库文件(LIB)而不需考虑这些运行时库。

选择动态链接的原因是所有的NT都会包含这些dll文件(节省空间).

如果你想使用MFC的静态库版本,则需要在config.h中加入以下的宏定义:

#defineACE_USES_STATIC_MFC1

你也可以全部使用静态库,这需要你在ACE的工程文件中自己设置。

6.如果定义了ACE_AS_STATIC_LIBS宏,则ACE库将被编译成为静态库。

如果你的程序要静态链接ACE的静态库,则在你的工程中也要定义这个宏:

ACE_AS_STATIC_LIBS.

作为可选项,为了减小静态库文件和你的可执行程序的大小,你可以在

ACE_ROOT\ace\config.h文件的#include语句前添加如下的宏定义

#defineACE_NO_INLINE

来禁止内联函数。

7.用VC打开TAO和ACE的工程文件:

ACE_ROOT\tao\taoace.dsw,开始编译ACE

和TAO.注意ACE和TAO有Debug和Release两个版本.你在开发自己的程序时,

如果是Debug版的程序,必须链接Debug版的TAO库,如果是Release版的程序,

必须链接Release版的TAO库.(这不废话!

不过你一定会回来和我一起唱这个

当当当的)

taoace.dsw中包含了许多工程,工程之间是有依赖关系的.所以这个工程

编译的顺序比较重要.关于编译的顺序,下文叙述.

每个工程都包含有一些不同的配置:

Debug/Release、MFC/Non-MFC、

Static/Dynamic等版本。

你必须确定你所需要的版本。

如,要生成你程序的

debug版,则需要debug版的ACE。

注意:

如果你用动态(DLL)版本的TAO,在开发程序时,需要将ACE_ROOT\bin

目录添加到你的程序的PATH环境变量中,否则程序会报告找不到动态链接库.

8.编译顺序.

TAO中有好多服务可能是你用不到的.所以编译时没有必要将所有的程序全部

编译一遍.要知道编译TAO还是个艰巨的任务咧.

我目前只用到了Naming和Event服务,并且没有用它的实时CORBA功能.所以我

的编译顺序是:

说明需要编译的工程

---------------------------------------

核心库ACEDLLFiles

TAODLLFiles

IDL编译器gperfFiles

TAO_IDL_FE_DLLFiles

TAO_IDL_BE_DLLFiles

TAO_IDLCompilerFiles

POAPortableServerFiles

名字和事件服务IORTableFiles

SvcUtilsFiles

CosNamingFiles

Naming_ServiceFiles

MessagingFiles

CosEventFiles

CosEvent_ServiceFiles

NT_Naming_ServiceFiles

----------------------------------------

TAO的主页上有一个可以自动编译所有TAO工程的脚本,记不得在那里了.

9.编译后得到的文件分散于各目录中:

可执行程序和动态链接库文件:

$ACE_ROOT\bin

lib文件:

$(ACE_ROOT)\ace,

$(TAO_ROOT)\tao,

$(TAO_ROOT)\orbsvcs\orbsvcs

头文件:

$(ACE_ROOT),

$(TAO_ROOT),

$(TAO_ROOT)\orbsvcs

10.ACE的DLL和LIB的命名规则:

当使用MSVC编译时的命名规则如下:

"静态库/DLL文件名"+(是静态库吗?

"s":

"")+

(是Debug模式的库吗?

"d":

"")+(.dll/.lib)

11.测试TAO

TAO的测试代码位于TAO_ROOT\tests目录下。

有一个vc的工程文件:

TAO_tests.dsw来编译所有的测试代码。

发信人:

Mentoya(钻研Orbix2000中...),信区:

DOC

标题:

TAO使用指南--用VC++开发TAO程序

发信站:

BBS水木清华站(ThuMay819:

34:

422003),转信

在MicrosoftVisualC++中开发TAO程序时的设置:

一.路径设置

1.首先确认环境变量ACE_ROOT和TAO_ROOT已被正确设置.

2.将(ACE_ROOT\bin)添加到PATH环境变量中.否则会找不到DLL.

3.在Tools->Options->Directories中,分别添加如下目录:

Includefiles:

$(ACE_ROOT),$(TAO_ROOT),$(TAO_ROOT)\orbsvcs

Libraryfiles:

$(ACE_ROOT)\ace,$(TAO_ROOT)\tao,$(TAO_ROOT)\orbsvcs\orbsvcs

4.也可以在

Project->Settings->C/C++->Preprocessor->Additionalincludedirectories

中添加头文件的路径.

Project->Settings->Link->Input->Additionallibrarydirectories

中添加静态库文件路径.

二.工程设置

1.Project->Settings->C/C++->Codegeneration:

如果工程是Debug版,选择DebugMultithreadedDLL

如果工程是Release版,选择MultithreadedDLL

2.Project->Settings->Link->Input->Object/librarymodules:

需要添加TAO的静态链接库文件:

说明Debug版Release版

---------------------------------------------

普通客户端:

Debug版:

ACEd.lib

Release版:

ACE.lib

普通服务器:

在ACE.lib/ACEd.lib的基础上,还需要添加:

Debug版:

PortableServerd.lib

Release版:

PortableServer.lib

如果使用了名字服务,则需要添加TAO_CosNaming.lib或

TAO_CosNamingd.lib

如果使用了事件服务,则需要添加TAO_CosEvent.lib或

TAO_CosEventd.lib

注意:

TAO分Debug和Release版,所以在开发时,Debug和Release版

的设置要严格区分.即使是MS自己的库也是这样.如对于

Debug版,要包含MSVCRTd.lib而不是MSVCRT.lib.我就是因为

这个原因而使程序出现异常,导致差点放弃了TAO:

-(

发信人:

Mentoya(钻研Orbix2000中...),信区:

DOC

标题:

TAO使用指南--做一个TAO的SDK

发信站:

BBS水木清华站(ThuMay819:

56:

032003),站内

TAO的文件众多,目录结构复杂,所以生成一个所谓的TAOSDK来方便开发.

这个TAOSDK的目录结构如下:

TAOSDK_ROOT

|

|--bin(所有的可执行文件和动态链接库)

|--idl(ORB的IDL文件)

|--include(所有的头文件)

||--ace

|||--***

|||--***

||

||--orbsvcs

|||--CosEvent

|||--Naming

|||--***

|||--***

||

||--tao

|||--IORTable

|||--PortableServer

|||--***

|--lib(所有的静态库文件)

使用时,首先创建环境变量TAOSDK_ROOT为TAOSDK的根目录,然后

在VC的工程中如下设置:

添加头文件的include路径:

$(TAOSDK_ROOT)\include,$(TAOSDK_ROOT)\include\orbsvcs,$(TAOSDK_ROOT)\tao

添加静态库文件路径:

$(TAOSDK_ROOT)\lib

下面提供了一个自动生成TAOSDK的批处理文件,将该文件置于ACE_ROOT目录下,

然后执行之...

注:

本程序来源于TAO的邮件列表.

Filename:

TAOSDK.bat

-------------------------------------------------------------------------

@echooff

@echoCreateingdirectories…

mkdir..\tao\bin

mkdir..\tao\include

mkdir..\tao\include\ace

mkdir..\tao\include\ace\classix

mkdir..\tao\include\ace\qos

mkdir..\tao\include\ace\rmcast

mkdir..\tao\include\ace\ssl

mkdir..\tao\include\tao

mkdir..\tao\include\tao\BiDir_GIOP

mkdir..\tao\include\tao\Domain

mkdir..\tao\include\tao\DynamicAny

mkdir..\tao\include\tao\DynamicInterface

mkdir..\tao\include\tao\IFR_Client

mkdir..\tao\include\tao\IORManipulation

mkdir..\tao\include\tao\IORTable

mkdir..\tao\include\tao\PortableServer

mkdir..\tao\include\tao\RTCORBA

mkdir..\tao\include\tao\RTPortableServer

mkdir..\tao\include\tao\SmartProxies

mkdir..\tao\include\tao\Strategies

mkdir..\tao\include\tao\TypeCodeFactory

mkdir..\tao\include\orbsvcs

mkdir..\tao\include\orbsvcs\***

mkdir..\tao\include\orbsvcs\Concurrency

mkdir..\tao\include\orbsvcs\CosEvent

mkdir..\tao\include\orbsvcs\ESF

mkdir..\tao\include\orbsvcs\ETCL

mkdir..\tao\include\orbsvcs\Event

mkdir..\tao\include\orbsvcs\FaultTolerance

mkdir..\tao\include\orbsvcs\LifeCycle

mkdir..\tao\include\orbsvcs\LoadBalancing

mkdir..\tao\include\orbsvcs\Log

mkdir..\tao\include\orbsvcs\Naming

mkdir..\tao\include\orbsvcs\Notify

mkdir..\tao\include\orbsvcs\Property

mkdir..\tao\include\orbsvcs\Sched

mkdir..\tao\include\orbsvcs\Security

mkdir..\tao\include\orbsvcs\SSLIOP

mkdir..\tao\include\orbsvcs\Time

mkdir..\tao\include\orbsvcs\Trader

mkdir..\tao\lib

@echocopyingheaderfiles...

copyace\*.i..\tao\include\ace

copyace\*.inl..\tao\include\ace

copyace\*.h..\tao\include\ace

copyace\*.cpp..\tao\include\ace

copyace\classix\*.i..\tao\include\ace\classix

copyace\classix\*.h..\tao\include\ace\classix

copyace\classix\*.cpp..\tao\include\ace\classix

copyace\qos\*.i..\tao\include\ace\qos

copyace\qos\*.h..\tao\include\ace\qos

copyace\qos\*.cpp..\tao\include\ace\qos

copyace\rmcast\*.i..\tao\include\ace\rmcast

copyace\rmcast\*.h..\tao\include\ace\rmcast

copyace\rmcast\*.cpp..\tao\include\ace\rmcast

copyace\ssl\*.i..\tao\include\ace\ssl

copyace\ssl\*.h..\tao\include\ace\ssl

copyace\ssl\*.cpp..\tao\include\ace\ssl

copytao\tao\*.i..\tao\include\tao

copytao\tao\*.inl..\tao\include\tao

copytao\tao\*.h..\tao\include\tao

copytao\tao\*.idl..\tao\include\tao

copytao\tao\*.cpp..\tao\include\tao

copytao\orbsvcs\Naming_Service\*.h..\tao\include\tao

copytao\orbsvcs\LoadBalancer\*.h..\tao\include\tao

copytao\orbsvcs\Logging_Service\*.h..\tao\include\tao

copytao\orbsvcs\TAO_Service\*.h..\tao\include\tao

copytao\orbsvcs\Time_Service\*.h..\tao\include\tao

copytao\orbsvcs\Naming_Service\*.h..\tao\include\tao

copytao\orbsvcs\Trading_Service\*.h..\tao\include\tao

copytao\orbsvcs\ImplRepo_Service\*.h..\tao\include\tao

copytao\orbsvcs\Concurrency_Service\*.h..\tao\include\tao

copytao\orbsvcs\CosEvent_Service\*.h..\tao\include\tao

copytao\orbsvcs\Dump_Schedule\*.h..\tao\include\tao

copytao\orbsvcs\Event_Service\*.h..\tao\include\tao

copytao\orbsvcs\IFR_Service\*.h..\tao\include\tao

copytao\orbsvcs\LifeCycle_Service\*.h..\tao\include\tao

copytao\orbsvcs\Notify_Service\*.h..\tao\include\tao

copytao\orbsvcs\Scheduling_Service\*.h..\tao\include\tao

copytao\orbsvcs\orbsvcs\*.h..\tao\include\orbsvcs

copytao\orbsvcs\orbsvcs\*.i..\tao\include\orbsvcs

copytao\orbsvcs\orbsvcs\*.cpp..\tao\include\orbsvcs

copytao\orbsvcs\orbsvcs\***\*.h..\tao\include\orbsvcs\***

copytao\orbsvcs\orbsvcs\***\*.i..\tao\include\orbsvcs\***

copytao\orbsvcs\orbsvcs\***\*.cpp..\tao\include\orbsvcs\***

copytao\orbsvcs\orbsvcs\Concurrency\*.h..\tao\include\orbsvcs\Concurrency

copytao\orbsvcs\orbsvcs\Concurrency\*.i..\tao\include\orbsvcs\Concurrency

copytao\orbsvcs\orbsvcs\Concurrency\*.cpp..\tao\include\orbsvcs\C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1