ACE (
ADAPTIVE Communication Environment) 是个好东西,好东西要使用才能体现价值,要使用就得拥有。那么,ACE入门的第一课自然就是在自已的系统上构建
ACE!
ACE 是跨平台的,这是它一个很重要的特性,我也就是冲着这个特性而来。ACE支持很多的操作系统,我的目标是两个,一个是 Windows, 一个是 Linux。
ACE 的作者
Douglas C. Schmidt 传言中每天只睡三个小时,三个小时里还在收发 EMail。我当然不是,但几个系统折腾下来,当晚我也只睡了 3.5 小时
![](http://img.e-com-net.com/image/info5/bdb4e31d238947659f96ea25c4eb4fa3.jpg)
。 闲话少说,下面列出步骤,希望能给后来者一点帮助:
1. 下载Latest Release
下载地址在 http://deuce.doc.wustl.edu/Download.html。写这篇 blog 时是 5.4。 我现在仅仅需要 ACE,所以我选择下了这个包 ACE-5.4.tar.gz 共 7.56M,很快可以下完。
2. 然后打开官方的安装说明做准备
地址 http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html#installpre
3. 在 Windows2003 中用 vc7.1 构建
windows 的使用以易用而著称,这次也不例外。 安装说明的 Building and Installing ACE on Windows with Microsoft Visual C++ 节详细说明了如何安装。
我想用 ACE 构建跨平台应用,所以我只选择我要的东西:
3.1 将 ACE-5.4.tar.gz 解压,有一个 ACE_wrappers 目录。这个将做为 ACE_ROOT。
3.2 在 ACE_ROOT\ace 目录创建一个名为 config.h的文件。编辑文件并加入以下内容
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"
其中第一行是因为我想用标准C++跨平台,第二行则是必须要的
要用UNICODE,加#define ACE_USES_WCHAR 1
3.3 在 ACE_ROOT\ace 中找到 ace.dsw,用 vc7.1 打开。因为当前编译器版本高,会提示你转换。 转换后,在 Debug 和 Release 状态,在 Solution Explorer/ACE 上点 Rebuild,然后伏案小憩。 在ACE_ROOT\lib 目录会生成我们所要的 dll 和 lib 文件。
3.4 就这样搞定,够简单吧
4. 在 RedHat9 中用 G++3.2.2 构建
Linux 则要麻烦不少,网上有不少贴子,说安装多难,说 ACE-INSTALL.html 不对。呵, 这个观点倒是误导了我,我只睡了 3.5 小时与此有极大的关系。其实,ACE-5.4 的安装,只要按说明步步行来,自然水到渠成。关键是要找对指引。详细步骤看安装说明的 Building ACE with GNU Autoconf 节
4.0 做一些准备动作 (这几步有的可后做,但到了编译自已的项目时还是要用到)
在 $HOME目录的.bash_profile 文件中加入
ACE_ROOT=$HOME/ThirdParty/ACE_wrappers
export ACE_ROOT
在 $ACE_ROOT/ace 目录新建 config.h 并加入
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-linux.h"
在 $ACE_ROOT/include/makeinclude 目录新建 platform_macros.GNU 并加入
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
4.1 cd 命令进入 ACE_wrappers 目录.
4.2 然后敲下面两个命令
mkdir build
cd build
4.3 运行 ../configure [options] 为你的平台配置 ACE 。我没有使用任何选项
4.4 键入命令 make ,会发现 RedHat9 默认 autoconf 版本不够,去 http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=52357 下载一个新的版本 autoconf-2.59.tar.gz 并解压安装 (使用./configure 和 make install)。 再次键入 make 构建 ACE。构建时间可以冲一杯coffee 。 成功后在 $ACE_ROOT/build/ace/.libs 生成许多文件,键入
$ ls -a lib*so*
看到文件已生成
$ libACE.so libACE.so.5 libACE.so.5.4.0
结尾...
时间又到了晚上一点, 是跟周公一起吹水的时间了,键盘和鼠标,就停在这里