﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Focus on ACE-随笔分类-TAO</title><link>http://www.cppblog.com/ace/category/1168.html</link><description>&lt;table style="border:1px solid #aa0033; font-size:small" align=center&gt;
  &lt;tr&gt;
    &lt;td rowspan=3&gt;
    
    &lt;/td&gt;
    &lt;td colspan=2 align=center&gt;&lt;b&gt;订阅 ace-china&lt;/b&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;form action="http://groups.google.com/group/ace-china/boxsubscribe"&gt;
  &lt;input type=hidden name="hl" value="zh-CN"&gt;
  &lt;tr&gt; 
    &lt;td&gt;电子邮件： &lt;input type=text name=email&gt;&lt;/td&gt;
    &lt;td&gt;
      &lt;table 
       style="background-color:#ffcc33;padding:2px;border:2px outset #ffcc33;"&gt;
      &lt;tr&gt;
        &lt;td&gt;
         &lt;input type=submit name="sub" value="订阅"&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;/table&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
   &lt;/form&gt;
  &lt;tr&gt;&lt;td colspan=2 align=center&gt; 浏览存于  
	&lt;a href="http://groups.google.com/group/ace-china"&gt;groups.google.com&lt;/a&gt; 上的&lt;a href="http://groups.google.com/group/ace-china"&gt;所有帖子&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description><language>zh-cn</language><lastBuildDate>Tue, 22 Jul 2008 19:11:29 GMT</lastBuildDate><pubDate>Tue, 22 Jul 2008 19:11:29 GMT</pubDate><ttl>60</ttl><item><title>如何在Windows,Visual C++下获取、配置和构建ACE及TAO?</title><link>http://www.cppblog.com/ace/archive/2008/07/22/56808.html</link><dc:creator>Stone Jiang</dc:creator><author>Stone Jiang</author><pubDate>Mon, 21 Jul 2008 17:00:00 GMT</pubDate><guid>http://www.cppblog.com/ace/archive/2008/07/22/56808.html</guid><wfw:comment>http://www.cppblog.com/ace/comments/56808.html</wfw:comment><comments>http://www.cppblog.com/ace/archive/2008/07/22/56808.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ace/comments/commentRss/56808.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ace/services/trackbacks/56808.html</trackback:ping><description><![CDATA[<p>Q:如何在Windows,Visual C++下获取、配置和构建ACE及TAO?<br>A:本FAQ提供 在Windows下用VisualC++安装和构建ACE+TAO的基本说明。<br>&nbsp; <a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>+TAO也适用于其它主要的操作系统，例如：Linux, Solaris,<br>&nbsp; HP-UX, AIX和Tru64,还适用于一些实时，嵌入式操作系统，如<br>&nbsp; VxWorks,LynxOS, timeSys Linux和Windows CE。在Windows中，<br>&nbsp; <a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>+TAO也可以用Borland C++编译器构建。</p>
<p><br>&nbsp;.硬件要求：<br>&nbsp;&nbsp;&nbsp; - CPU： Intel X86 P3 500 MHz或更快<br>&nbsp;&nbsp;&nbsp; - 内存：512MB (更多内存可以提高编译速度)<br>&nbsp;&nbsp;&nbsp; - 硬盘空间： 256MB交互空间+ 250MB至数GB空闲空间（取瘊于您要有<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多少需要构建)</p>
<p>&nbsp;.操作系统要求：<br>&nbsp;&nbsp;&nbsp; - Windows 2000, 2003,或XP&nbsp; (其实Vista下我试过也可以)<br>&nbsp; <br>&nbsp; <br>&nbsp;.C++编译器要求：<br>&nbsp; - Microsoft Visual C++ 6.0 SP5 (新版本的ACE+TAO已不支持VC6了)<br>&nbsp; - Microsoft Visual C++ 7.1 (VS2003)<br>&nbsp; - Microsoft Visual C++ 8.0 (VS2005)<br>&nbsp; - Microsoft Visaul C++ 9.0 (VS2008) </p>
<p>&nbsp;.其他软件要求：<br>&nbsp; - WinZIP或类似的解压缩工具<br>&nbsp; - ActiveState Perl v5.6.1或更新版本（推荐，不是必需）</p>
<p>&nbsp;获取和安装ACE+TAO<br>&nbsp; 1. 从下载OCI TAO 1.5a的最新补丁<br>&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://download.ociweb.com/TAO-1.5a/ACE+TAO-1.5a_with_latest_patches.zip">http://download.ociweb.com/TAO-1.5a/ACE+TAO-1.5a_with_latest_patches.zip</a><br>&nbsp;&nbsp;&nbsp; 或从ACE+TAO的官方网站上下载最新Beta版<br>&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://download.dre.vanderbilt.edu/">http://download.dre.vanderbilt.edu/</a><br>&nbsp; 2. 把上述压缩文件释入至没有空格的目录中（例如：C:\ACE_wrappers)<br>&nbsp; 3. 设置环境变量 ACE_ROOT,TAO_ROOT和PATH.<br>&nbsp;&nbsp;&nbsp;&nbsp; 例如：如果ACE+TAO安装至C:\ACE_wrappers,则上述环境变量如下：<br>&nbsp;&nbsp;&nbsp;&nbsp; * ACE_ROOT=C:\ACE_wrappers<br>&nbsp;&nbsp;&nbsp;&nbsp; * TAO_ROOT=%ACE_ROOT%\TAO<br>&nbsp;&nbsp;&nbsp;&nbsp; * PATH路径需要包含: %ACE_ROOT%\bin;%ACE_ROOT%\lib<br>&nbsp; 4. 在 %ACE_ROOT%\ace 目录中config.h文件，文件内容是：<br>&nbsp;&nbsp;&nbsp;&nbsp; #define ACE_DISABLE_WIN32_ERROR_WINDOWS<br>&nbsp;&nbsp;&nbsp;&nbsp; #define ACE_HAS_STANDARD_CPP_LIBRARY 1<br>&nbsp;&nbsp;&nbsp;&nbsp; #define ACE_DISABLE_WIN32_INCREASE_PRIORITY<br>&nbsp;&nbsp;&nbsp;&nbsp; #include "<a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>/config-win32.h"<br>&nbsp; 5. %TAO_ROOT%\TAOACE.sln<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在ACETAO工作区(workspace)中的项目构建ACE和TAO库，TAO_IDL编译器、gperf,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ORB服务库和可执行文件以及一些公共的实用工具(utilities)。他们不包含<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例、测试和性能测试。库文件将安装至%ACE_ROOT%\lib，一些可执行文件将安装<br>&nbsp;&nbsp;&nbsp;&nbsp; 至%ACE_ROOT%\bin中，其他（ORB服务的可执行文件）将安装在他们自己的源代码所在<br>&nbsp;&nbsp;&nbsp;&nbsp; 目录中。<br>&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; 如果您不想全部建议TAOACE workspace的库和可执行文件，我们建议构建Naming_Service<br>&nbsp;&nbsp;&nbsp;&nbsp; 项目。在开发自己的应用程序里常会用到它。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 如果上述的workspace文件不存在，那么你需要用MakeProjectCreator (MPC)来生成它。<br>&nbsp;&nbsp;&nbsp;&nbsp; 命令行如下（需要Perl，上面已列出）：<br>&nbsp;&nbsp;&nbsp;&nbsp; cd %TAO_ROOT%<br>&nbsp;&nbsp;&nbsp;&nbsp; %ACE_ROOT%\bin\mwc.pl -type vc71 TAOACE.mwc -- 成生visual stuido 2003 workspace文件<br>&nbsp;&nbsp;&nbsp;&nbsp; %ACE_ROOT%\bin\mwc.pl -type vc8 TAOACE.mwc&nbsp; -- 成生visual stuido 2005 workspace文件<br>&nbsp;&nbsp;&nbsp;&nbsp; %ACE_ROOT%\bin\mwc.pl -type vc9 TAOACE.mwc&nbsp; -- 成生visual stuido 2008 workspace文件</p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;</p><img src ="http://www.cppblog.com/ace/aggbug/56808.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ace/" target="_blank">Stone Jiang</a> 2008-07-22 01:00 <a href="http://www.cppblog.com/ace/archive/2008/07/22/56808.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TAO(The ACE ORB)简介</title><link>http://www.cppblog.com/ace/archive/2006/12/04/15959.html</link><dc:creator>Stone Jiang</dc:creator><author>Stone Jiang</author><pubDate>Mon, 04 Dec 2006 02:24:00 GMT</pubDate><guid>http://www.cppblog.com/ace/archive/2006/12/04/15959.html</guid><wfw:comment>http://www.cppblog.com/ace/comments/15959.html</wfw:comment><comments>http://www.cppblog.com/ace/archive/2006/12/04/15959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ace/comments/commentRss/15959.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ace/services/trackbacks/15959.html</trackback:ping><description><![CDATA[<p>TAO(The <a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a> ORB)简介<br />TAO是一种开源的CORBA的实现。它是基于对象管理组织(OMG)标准CORBA参考模型,并通过自适应通讯环境(ACE)提供的软件概念和框架构建而成。这是一项中间件技术，这种技术使通用网络编程任务自动化，包括以下方面：<br />1.注册，定位和激活；<br />2.对象请求的多路分发；<br />3.分帧及错误处理；<br />4.参数编码和解码；和<br />5.操作的多路分解</p>
		<p><a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>/TAO的实现语言是C和C++。用ACE/TAO构建服务器和客户端的过程超出了本指南的范围，但有几个概念还是值得重提：<br />1. 接口(Interface)定义在OMG 标准的.idl文件中。用TAO_IDL实用程序,TAO可以自动通过.idl文件生成C++的静态存根(stubs)和框架(skeletions),二者分别用于服务器端和客户端.<br />2.程序员实现在生成的I.cpp静态存根中的接口，再使用惯用的CORBA技术来编写客户端和服务端的代码来进行实现。<br />3. <a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>/TAO提供了一个make实用程序，这个实用程序可以跨平台的管理项目的创建和编译。程序员编写的.mpc文件，定义了所创建的项目所需的源代码，Perl语言脚本创建makefile文件或Visual Sutdio的解决方案。在Linux上，可以生成GC++项目，命令是 mwc.pl -type gcace。在Windows上，产生Visual studio.net 2003解决方案的命令是:mwc.pl -type VC71</p><img src ="http://www.cppblog.com/ace/aggbug/15959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ace/" target="_blank">Stone Jiang</a> 2006-12-04 10:24 <a href="http://www.cppblog.com/ace/archive/2006/12/04/15959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Linux下安装ACE菜鸟指南</title><link>http://www.cppblog.com/ace/archive/2006/06/23/8864.html</link><dc:creator>Stone Jiang</dc:creator><author>Stone Jiang</author><pubDate>Thu, 22 Jun 2006 16:19:00 GMT</pubDate><guid>http://www.cppblog.com/ace/archive/2006/06/23/8864.html</guid><wfw:comment>http://www.cppblog.com/ace/comments/8864.html</wfw:comment><comments>http://www.cppblog.com/ace/archive/2006/06/23/8864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ace/comments/commentRss/8864.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ace/services/trackbacks/8864.html</trackback:ping><description><![CDATA[<a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a> for linux的安装由于安装说明文件“ACE-INSTALL.html”中提及的linux安装过程极少，其主要针对Unix、Windows，手动配置较多，加上本人安装后感觉“ACE-INSTALL.html”文件有些影响视听，因为主要的动作都可以由ACE包中的安装脚本ACE-install.sh自动完成，我们主要的工作就可以直接对这个安装脚本来处理即可。<br /><br />1、安装环境：lRedHat 9.0 ACE安装包ACE+TAO+CIAO.tar.gz，<a href="http://deuce.doc.wustl.edu/Download.html" target="_blank"><font color="#000080">http://deuce.doc.wustl.edu/Download.html</font></a> ， "Latest Beta Kit"，beta版既是ACE的最新版。<br /><br />2、安装过程：第一步先设置ACE_ROOT环境，命令：“vi /etc/profile”<br /><br />在其中加入4行ACE_ROOT=/opt/ACE export ACE_ROOT LD_LIBRARY_PATH=$ACE_ROOT/ace：$LD_LIBRARY_PATH export LD_LIBRARY_PATH我是加在“export PATH USER…。”后的。完成后将/etc/profile执行一次，命令：“chmod 555 /etc/profile”<br /><br />“/etc/profile”<br /><br />这样我们的ACE_ROOT就设置好了，可以用如下命令查看ACE_ROOT是否设置好了：“echo $ACE_ROOT”<br /><br />这个时候最好reboot启动一次linux.第二步不要自己手工将ACE+TAO+CIAO.tar.gz包完全解开，特别强调不要完全解开，后面可以看到安装脚本会给我们解开它的；如果你手工解开全部，安装脚本将会将你的解压缩目录删除的！我们要做的事就只是将ACE+TAO+CIAO.tar.gz包中的ACE-install.sh安装脚本单独解出来，并对其修改。我们只要这一个文件就可以。<br /><br />用mkdir建目录，如/home/my/ACE，然后将你的ACE+TAO+CIAO.tar.gz放在此目录下（用cp命令拷贝或mv命令移动到此目录）。注意这个目录将是你的一个存放ACE+TAO+CIAO.tar.gz的目录，安装脚本会来这个目录找这个文件的，这个目录和ACE_ROOT是不一样的，且ACE-install.sh也提示不要将这两个目录设置成同一个目录。ACE_ROOT将是我们的安装目标目录。<br /><br />从ACE+TAO+CIAO.tar.gz解压出单个文件ACE-install.sh：“tar –zxvf <a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>+TAO+CIAO.tar.gz ACE_wrappers/ACE-install.sh”<br /><br />解好后，会出来一个新的子目录“ACE_wrappers”。此时可以先将ACE-install.sh移到外面的目录来：“mv /ACE_wrappers/ACE-install.sh .”<br /><br />“。”代表当前目录。当然ACE-install.sh在什么路径下是没什么影响的，因为我们要对ACE-install.sh的内容进行修改的，里面有很多路径要修改。好，现在在/home/my/ACE就有了ACE-install.sh，我们现在用vi对其进行修改，修改前自己可以先备份一个。命令：“cp <a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>-install.sh <a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>-install.sh.bak”<br /><br />“vi <a title="" href="http://www.cs.wustl.edu/~schmidt/ACE.html " >ACE</a>-install.sh”<br /><br />我们可以看到缺省的，这个文件是用来在UNIX下做安装的。所以我们要将其中的有关UNIX的部分换成linux即可。<br /><br />先找到“MY_ACEDIR=${HOME}/aceconfig”，将其改成“MY_ACEDIR=/home/my/ACE”，就是改成我们自己建的、放有ACE+TAO+CIAO.tar.gz文件的目录，之后去掉前面的注释“#”号。<br /><br />接着在下面一点，找到“MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”，将其修改成 “MY_ACE_CONFIG=config-linux.h”，即改成linux下的配置文件。继续改，找到“MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU”，将其改成 “MY_ACE_GNU_MACROS=platform_linux.GNU”。这个是各种操作系统平台下的GNU宏文件设置。<br /><br />好了，文件修改完毕，保存退出“：wq”。<br /><br />第三步我们的重点到了，现在就可以安装ACE了。<br /><br />此时应该是在/home/my/ACE目录下，我们执行：。/ACE-install.sh<br /><img src ="http://www.cppblog.com/ace/aggbug/8864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ace/" target="_blank">Stone Jiang</a> 2006-06-23 00:19 <a href="http://www.cppblog.com/ace/archive/2006/06/23/8864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TAO的安装 (转)</title><link>http://www.cppblog.com/ace/archive/2006/04/12/5381.html</link><dc:creator>Stone Jiang</dc:creator><author>Stone Jiang</author><pubDate>Wed, 12 Apr 2006 05:16:00 GMT</pubDate><guid>http://www.cppblog.com/ace/archive/2006/04/12/5381.html</guid><wfw:comment>http://www.cppblog.com/ace/comments/5381.html</wfw:comment><comments>http://www.cppblog.com/ace/archive/2006/04/12/5381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ace/comments/commentRss/5381.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ace/services/trackbacks/5381.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">一、安装TAO，需要先编译并安装ACE。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />二、ACE的编译和安装步骤见http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html。TAO的编译和安装步骤见http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/TAO-INSTALL.html。如果你英文程度还可以的话，最好直接阅读这两篇文档。说到底，中文文档只是“权宜之计”；汉语并不太适合进行逻辑性的表述。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />但我还是把其中的一些段落编译如下（VC 6.0 + <a title="ac" href="http://www.cs.wustl.edu/~schmidt/ACE.html">ace</a>-5.2.1 + TAO-1.2.1）：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />ACE的编译与安装<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />一般规则<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />ACE中的许多特性可以通过在$ACE_ROOT/ace/config.h中定义一些宏来进行修改。这些宏应该总是在包括针对你的平台的配置文件之前出现。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />但是，如果你想要取消/重定义在针对特定平台的配置文件中定义的宏，#undef应该在配置文件之后出现。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />如果你计划在多种平台上编译ACE，你也许需要考虑克隆源码树。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />步骤：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />1. 将ACE发布文件解压缩到某个目录中，在其中将会创建含有所有文件的ACE_wrappers目录。在下面的步骤中，ACE_wrappers目录将以ACE_ROOT为名来指称。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />2. 在ACE_ROOT\ace目录中创建一个名为config.h的文件，在其中包含：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#include “ace/config-win32.h”<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />3. 现在加载ACE的项目文件（ACE_ROOT\ace\ace.dsw）。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />4. 其中的每个项目都含有若干不同的配置（可混合Debug/Release、MFC/Non-MFC、Static/Dynamic library版本）。你可以从中选择你所需的配置，或是使用ace/config.h来进行调整。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />注意：如果你使用动态链接库，在运行使用ACE的程序时，确定你在PATH中包括了ACE_ROOT\bin。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />5. 如果你的系统平台是WinNT或2000，那么无需任何改动你就可以开始编译了。如果是Windows 9x/Me，你需要在ACE_ROOT\ace\config.h中的#include语句之前增加：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#define ACE_HAS_WINNT4 0<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />6. 如果你想要使用MSVC标准C++头（iostream、cstdio……），在ACE_ROOT\ace\config.h中的#include语句之前增加：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#define ACE_HAS_STANDARD_CPP_LIBRARY 1<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />7. 要与MFC一起使用ACE，再增加下面的定义：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#define ACE_HAS_MFC 1<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />注意如果你想要通过CWinThread派生新线程，一定要设置THR_USE_AFX。在缺省情况下，所有的ACE项目都使用DLL版本的MSVC运行时库。尽管如此，你仍然可以选择使用static（LIB）版本的ACE库。如果你想要将MFC作为静态库链接进ACE，你可以在config.h文件中定义ACE_USES_STATIC_MFC。但如果你想要静态链接所有的东西（包括MSVC运行时库），你就需要自己修改ACE的项目文件。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />8. ACE的静态版本是通过定义ACE_AS_STATIC_LIBS来编译的。在链接静态ACE库的应用项目中也应该使用这个宏。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />你也可以在config.h文件中增加<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#define ACE_NO_INLINE<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />来取消函数内联并减小静态库（和你的可执行程序）的大小。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />9. <a title="ac" href="http://www.cs.wustl.edu/~schmidt/ACE.html">ace</a> DLL和LIB的命名方案：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />"Library/DLL名" + (是否为静态库 ? "s" : "") + (是否启用了Debugging ? "d" : "") + {".dll"|".lib"}<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />10. 配置完毕后编译即可。选择dll版本，编译生成的dll文件在ACE_ROOT\bin中，相应的lib文件在ACE_ROOT\ace中。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />ACE测试<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />各测试程序在ACE_ROOT\tests中。在其中也有一个工作空间文件可用来编译所有的测试程序（tests.dsw）。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />一旦你编译了所有测试程序（可使用批编译），你可以运行tests目录中的perl脚本run_test.pl或批处理文件run_tests.bat来进行所有测试。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />TAO的编译与安装<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />确定VC的CL.EXE在你的访问路径上。设置ACE_ROOT或TAO_ROOT环境变量。例如：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />set ACE_ROOT=C:\ACE_wrappers<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />TAO最好放置在ACE_wrappers（这也是缺省情况）。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />1.确定ACE已经编译和安装。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />2.确定ACE_wrappers\bin已在“Tools|Options”中的“Executable Directories”中列出。如果在MSVC下使用TAO_IDL编译器就需要进行此设置。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />3.加载tao\TAO.dsw，并编译TAO库。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />4.要编译Cubit测试，加载performance-tests\Cubit\TAO\IDL_Cubit\IDL_Cubit.dsw，并编译客户和服务器。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />TAOACE.dsw<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />TAOACE.dsw是一个Visual C++ 5.0/6.0工作空间文件，它加载的项目包括ACE、TAO、TAO_IDL（编译器）、gperf、orb服务库，以及一些单独的可执行程序（比如Naming Service，等等）。它可以用于编译所有的用于编译/运行TAO应用的文件。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />三、我选择编译的是dll版本（Release），并在ACE的config.h文件中定义了“#define ACE_HAS_STANDARD_CPP_LIBRARY 1”。编译后我所得到的ace.dll的大小是1.13MB，相应的ace.lib的大小是1.77MB；TAO.dll的大小是1.47MB，相应的TAO.lib的大小是2.74MB。所有文件约有 MB，包括源程序、编译生成的中间文件，等等，但有些例子及服务我没有编译。<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />祝学有所成！<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />马维达<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
		</div><img src ="http://www.cppblog.com/ace/aggbug/5381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ace/" target="_blank">Stone Jiang</a> 2006-04-12 13:16 <a href="http://www.cppblog.com/ace/archive/2006/04/12/5381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>