永远把艰辛的付出看作是生命的必要;
即使没有收获的指望,也心平气静地继续耕种!
ACE简介
2008-04-18 13:56:17
/ 个人分类:学习日记
ACE
全称是 ADAPTIVE Communication Environment, 其中 ADAPTIVE 的全称是
A Dynamically Assembled Protocol Transformation, Intergration, and
eValuation Environment, 它是一个非常优秀的工具包, 可以用于构建高性能、
跨平台的网络应用, 本文介绍了在 Windows 和 Linux 下安装 ACE 的方法。
@f$J3c-H!a0
1 ACE 的编译
在正式开始使用 ACE 之前, 我们必须先编译 ACE。 首先到
ACE
的官方站点 下载 ACE 的源码包, 然后解压到一个你喜欢的目录,
为编译做好准备。
1.1 Linux 下的编译
对于习惯了“三板斧”的 Linux 用户而言, 解压 ACE 后发现的第一个问题一定是:
居然没有熟悉的 configure! 是的, ACE 没有使用 autoconf。
首先, 我们需要设置 $ACE_ROOT 环境变量, 把该环境变量指向你解压
ACE 后得到的最上层目录, 如果你把 ACE 解压到了其它目录, 请修改下面提到的路径。
$ export ACE_ROOT=/src/ACE_wrappersLUPA开源社区il5_U.p/M)[&O(B:I!f8d4z
接下来, 我们进入 $ACE_ROOT/ace 目录, 创建一个文本 config.h,
内容如下:
#include "ace/config-linux.h"
m#Vsb
|w
M0
然后, 我们进入 $ACE_ROOT/include/makeinclude 目录, 创建一个文本文件
platform_macros.GNU, 内容如下:
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
5B8at5C!Z5FZ/DVQ0
然后回到 $ACE_ROOT 目录, 执行 make。
编译过程执行到中途的时候会出错, 那是因为 ACE 库中的部分代码需要通过一个代码生成器来生成,
而令人发指的一点是该代码生成器居然依赖 ACE 的库, 而此时 ACE 的库却还没有安装。
没关系, 虽然整个 ACE 还没有编译完, 但它依赖的 libACE.so 却已经准备好了。
切换到 root 下把 libACE.so.5.4.8 (如果你安装的 ACE 源码库与我的版本不一致,
这个数也可能是别的) 复制到 ldconfig 能找到的路径下, 如 /usr/lib
或 /usr/local/lib 下, 执行 ldconfig 刷新系统库列表,
然后删除 $ACE_ROOT/apps/gperf/tests/cpp.cpp, 最后重新运行
make, 经过漫长地等待后, ACE 就编译好了。
为了方便使用, 我们可以把 $ACE_ROOT/lib 下的内容复制到
/usr/lib 或 /usr/local/lib 下, 可以使用滇狐编写的这段脚本复制共享库,
命令行为:./install.sh /usr/local/lib。
#!/bin/shLUPA开源社区a|h1Vk.w
d5L!B
# Please place this file at $(ACE_ROOT)LUPA开源社区lpN%Iz$Fi+w
LUPA开源社区o+b"sA@Z1I:Eomi`7m
if (test $# -lt 1) then
0AE-Ky ~^)q0 echo 'Usage: install.sh <target directory>'
0|\(N.cBy*L+C3K0elseLUPA开源社区]%E
b
L].J
pushd $1LUPA开源社区L3N2W o*?0j"r
for file in $ACE_ROOT/lib/*LUPA开源社区c2kTz!W MG
doLUPA开源社区 _Y+[_6P-Aq
realname=`readlink $file`
EWxc M)e:U0e0 ln -s `basename $realname` `basename $file`
,i:g$I:w+cyA*^0 cp --remove-destination $realname .
'L.z;]`%Bstk0 done
3CGVaS%E;a)r n0 popdLUPA开源社区5f)wu+pu$n+[vR)B
fi
?'Q#O0z:OL\%N0
1.2 使用 MinGW + MSys 在 Windows 下的编译
为了在 Windows 下编译 ACE, 我们必须先安装一份 MinGW 和 MSys, 这两个软件都可以到
MinGW
的官方站点 免费下载。 使用昂贵的 Visual
Studio 编译 ACE 的方法我们这里不再进行讨论。
首先安装 MinGW, 然后再安装 MSys, 安装完毕后, 将 ACE 的源码包解压到某个目录,
然后打开 MSys 控制台, 切换到 ACE 所在的路径。 注意, MSys 使用的路径表示方式与
Windows 不大一样, 它使用正斜杠“/”作为路径分隔符, 并且把驱动器名看做根目录下的文件夹。
例如, 我把 ACE 解压到 E:\ACE_wrapper 下, 在 MSys
中的写法是:/e/ACE_wrapper。 设置 $ACE_ROOT
环境变量, 把该环境变量指向你解压 ACE 后得到的最上层目录, 如果你把
ACE 解压到了其它目录, 请修改下面提到的路径。
$ export ACE_ROOT=/e/ACE_wrapper