peakzhang 发表于 2008-9-18 23:42:48

Windows平台上编译安装ACE、TAO

一、安装TAO,需要先编译并安装ACE。
二、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。如果你英文程度还可以的话,最好直接阅读这两篇文档。说到底,中文文档只是“权宜之计”;汉语并不太适合进行逻辑性的表述。
但我还是把其中的一些段落编译如下(VC 6.0 + ACE-5.2.1 + TAO-1.2.1):
ACE的编译与安装
一般规则
ACE中的许多特性可以通过在$ACE_ROOT/ace/config.h中定义一些宏来进行修改。这些宏应该总是在包括针对你的平台的配置文件之前出现。
但是,如果你想要取消/重定义在针对特定平台的配置文件中定义的宏,#undef应该在配置文件之后出现。
如果你计划在多种平台上编译ACE,你也许需要考虑克隆源码树。
步骤:
1. 将ACE发布文件解压缩到某个目录中,在其中将会创建含有所有文件的ACE_wrappers目录。在下面的步骤中,ACE_wrappers目录将以ACE_ROOT为名来指称。
2. 在ACE_ROOT\ace目录中创建一个名为config.h的文件,在其中包含:
#include “ace/config-win32.h”
3. 现在加载ACE的项目文件(ACE_ROOT\ace\ace.dsw)。
4. 其中的每个项目都含有若干不同的配置(可混合Debug/Release、MFC/Non-MFC、Static/Dynamic library版本)。你可以从中选择你所需的配置,或是使用ace/config.h来进行调整。
注意:如果你使用动态链接库,在运行使用ACE的程序时,确定你在PATH中包括了ACE_ROOT\bin。
5. 如果你的系统平台是WinNT或2000,那么无需任何改动你就可以开始编译了。如果是Windows 9x/Me,你需要在ACE_ROOT\ace\config.h中的#include语句之前增加:
#define ACE_HAS_WINNT4 0
6. 如果你想要使用MSVC标准C++头(iostream、cstdio……),在ACE_ROOT\ace\config.h中的#include语句之前增加:
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
7. 要与MFC一起使用ACE,再增加下面的定义:
#define ACE_HAS_MFC 1
注意如果你想要通过CWinThread派生新线程,一定要设置THR_USE_AFX。在缺省情况下,所有的ACE项目都使用DLL版本的MSVC运行时库。尽管如此,你仍然可以选择使用static(LIB)版本的ACE库。如果你想要将MFC作为静态库链接进ACE,你可以在config.h文件中定义ACE_USES_STATIC_MFC。但如果你想要静态链接所有的东西(包括MSVC运行时库),你就需要自己修改ACE的项目文件。
8. ACE的静态版本是通过定义ACE_AS_STATIC_LIBS来编译的。在链接静态ACE库的应用项目中也应该使用这个宏。
你也可以在config.h文件中增加
#define ACE_NO_INLINE
来取消函数内联并减小静态库(和你的可执行程序)的大小。
9. ACE DLL和LIB的命名方案:
"Library/DLL名" + (是否为静态库 ? "s" : "") + (是否启用了Debugging ? "d" : "") + {".dll"|".lib"}
10. 配置完毕后编译即可。选择dll版本,编译生成的dll文件在ACE_ROOT\bin中,相应的lib文件在ACE_ROOT\ace中。
ACE测试
各测试程序在ACE_ROOT\tests中。在其中也有一个工作空间文件可用来编译所有的测试程序(tests.dsw)。
一旦你编译了所有测试程序(可使用批编译),你可以运行tests目录中的perl脚本run_test.pl或批处理文件run_tests.bat来进行所有测试。
TAO的编译与安装
确定VC的CL.EXE在你的访问路径上。设置ACE_ROOT或TAO_ROOT环境变量。例如:
set ACE_ROOT=C:\ACE_wrappers
TAO最好放置在ACE_wrappers(这也是缺省情况)。
1.确定ACE已经编译和安装。
2.确定ACE_wrappers\bin已在“Tools|Options”中的“Executable Directories”中列出。如果在MSVC下使用TAO_IDL编译器就需要进行此设置。
3.加载tao\TAO.dsw,并编译TAO库。
4.要编译Cubit测试,加载performance-tests\Cubit\TAO\IDL_Cubit\IDL_Cubit.dsw,并编译客户和服务器。
TAOACE.dsw
TAOACE.dsw是一个Visual C++ 5.0/6.0工作空间文件,它加载的项目包括ACE、TAO、TAO_IDL(编译器)、gperf、orb服务库,以及一些单独的可执行程序(比如Naming Service,等等)。它可以用于编译所有的用于编译/运行TAO应用的文件。
三、我选择编译的是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,包括源程序、编译生成的中间文件,等等,但有些例子及服务我没有编译。
祝学有所成!
马维达
页: [1]
查看完整版本: Windows平台上编译安装ACE、TAO