1.安装VS2008。
2.下载ACE+TAO。下载地址http://download.dre.vanderbilt.edu/,里面有两个,都是Release版,不知道有啥差别,我下的是第二个。选择FULL下载(FULL包含了项目文件,而SOURCE只包含源文件和相应的MPC与MWC文件,需要自己用MPC工具来生成所需的项目文件,如生成VS的sln,GUN的MakeFiles等等)。原来是这样
3.解压ACE+TAO-6.0.0.zip。
3.设置环境变量。
ACE_ROOT = C:\ACE_wrappers
TAO_ROOT = C:\ACE_wrappers\TAO
在Path中添加
%ACE_ROOT%\bin;
%ACE_ROOT%\lib;
4.VS2008相关设置。
工具——选项——项目和解决方案——VC++目录,
添加如下编译器环境变量:
可执行文件(Executable files):
$(ACE_ROOT)/bin
包含文件(Include files):
$(ACE_ROOT)
$(TAO_ROOT)
$(TAO_ROOT)/orbsvcs
库文件(Library files):
$(ACE_ROOT)/lib
5.添加config.h文件。
在%ACE_ROOT%/ace即C:\ACE_wrappers\ace下添加config.h,内容可以如下,
/* config.h */
#ifndef CONFIG_H
#define CONFIG_H
#define ACE_NO_INLINE // 禁止内联函数,为了减小静态库文件和你的可执行程序的大小。(可选,不过不知道有没有这项对以后的编程影响大吗或者还可以修改这个文件吗)
#define ACE_HAS_STANDARD_CPP_LIBRARY 1 //可以使用MSVC的STL库
#define ACE_HAS_MFC 1//使用MFC库
#include "ace/config-win32.h"
#endif
6.编译ACE。
首先打开Visual Studio 2008 命令提示框(类似CMD,路径为 程序->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 命令提示),然后输入命令 vcbuild %ACE_ROOT%\ace\ace_vc9.sln “RELEASE|Win32”和vcbuild %ACE_ROOT%\ace\ace_vc9.sln “Debug|Win32”。
编译最后报错,error PRJ0003 : 生成 cmd.exe 时出错,解决办法:
tools=> Options => Projects and Solutions -> VC++ Directories page
then place below rows:
$(SystemRoot)\System32
$(SystemRoot)
$(SystemRoot)\System32\wbem
编译成功!
7.编译TAO。
首先编译%TAO_ROOT%\TAO_IDL\TAO_IDL_vc9.sln“RELEASE|Win32”和%TAO_ROOT%\TAO_IDL\TAO_IDL_vc9.sln“Debug|Win32,然后再编译%TAO_ROOT%\tao\tao_vc9.sln“RELEASE|Win32”和%TAO_ROOT%\tao\tao_vc9.sln“Debug|Win32”。
我以为编译到这里就结束了,原来还要编译一些工程。
除了用命令行编译,还可以直接打开C:/ACE_wrappers/TAO文件夹下的TAO_ACE_vc9.sln,然后选择其中的工程进行编译。首先是对ACE进行编译,然后是对TAO进行编译。貌似还有一些工程需要编译,好多文章说的不太一样,但大致是差不多的,我的编译顺序是:
ACE
TAO
TAO_IDL_EXE(即tao_idl,也就是我们的idl编译器,自然少不了,并且后续工程也需要用到该编译器。该工程依赖于ACE、TAO_IDL_BE、TAO_IDL_FE、gperf等多个工程,编译TAO_IDL_EXE是会自动先编译这几个工程,该程序在编译TAO时已自动编译)
PortableServer(即POA库,编写CORBA应用程序哪能离得开POA,该工程依赖于ACE、TAO、CodeSet、AnyTypeCode等工程)
Naming_Service(即命名服务,这是对于我们开发CORBA应用相当有用的一个基本服务,该工程依赖的其它工程就更多了,就不再一一列举了)
我还顺便编译了一些其他服务和工程,如CosNaming、Messaging、CosEvent_Service、NT_Naming_Service等等,具体顺序不记得了,参考文章里说编译顺序很重要,估计是前面这几个重要的工程顺序要注意下吧,所以后面我随便编译一个工程都很顺利的成功了。
8.测试TAO
TAO的测试代码位于%TAO_ROOT%\tests目录下。有一个vc的工程文件:tests_vc9.sln。个人认为如果这个编译成功了应该算是ACE+TAO编译成功了,不过还有待研究。