首页 | 新闻资讯 | 培训认证 | 安全管理 | 病毒分析 | 安全协议 | 网络安全 | 防火墙 | 黑客技术
DB安全 | Web安全 | 入侵检测 | 安全审计 | 设备安全 | 备份恢复 | 安全标准 | 法律法规 | 无线安全
OS安全 | PKI与PMI | 病毒防治 | 隔离网闸 | XML安全 | 网管专区 | 经典案例 | 技术论坛 |  
+ 文章搜索 +
当前位置:首页>>黑客技术>>黑客编程>>正文
关键字:
范 围:
※推荐文章※
·流光IV插件编写
ACE 简介
作者: 文章出处:http://edyfox.codecarver.org/html/ace.html 发布时间:2006-05-11 点击: 字体: 【

ACE 全称是 ADAPTIVE Communication Environment, 其中 ADAPTIVE 的全称是 A Dynamically Assembled Protocol Transformation, Intergration, and eValuation Environment, 它是一个非常优秀的工具包, 可以用于构建高性能、跨平台的网络应用, 本页介绍了在 Windows 和 Linux 下安装 ACE 的方法。另外, 这里记录了一些滇狐学习、应用 ACE 的笔记。

1 ACE 的编译

在正式开始使用 ACE 之前, 我们必须先编译 ACE。 首先到 ACE 的官方站点 下载 ACE 的源码包, 然后解压到一个你喜欢的目录,为编译做好准备。

1.1 Linux 下的编译

对于习惯了“三板斧”的 Linux 用户而言, 解压 ACE 后发现的第一个问题一定是:居然没有熟悉的 configure! 是的, ACE 没有使用 autoconf。

首先, 我们需要设置 $ACE_ROOT 环境变量, 把该环境变量指向你解压 ACE 后得到的最上层目录, 如果你把 ACE 解压到了其它目录, 请修改下面提到的路径。

$ export ACE_ROOT=/src/ACE_wrappers

接下来, 我们进入 $ACE_ROOT/ace 目录, 创建一个文本 config.h,内容如下:

#include "ace/config-linux.h"

然后, 我们进入 $ACE_ROOT/include/makeinclude 目录, 创建一个文本文件 platform_macros.GNU, 内容如下:

include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

然后回到 $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/sh
# Please place this file at $(ACE_ROOT)

if (test $# -lt 1) then
    echo 'Usage: install.sh <target directory>'
else
    pushd $1
    for file in $ACE_ROOT/lib/*
    do
        realname=`readlink $file`
        ln -s `basename $realname` `basename $file`
        cp --remove-destination $realname .
    done
    popd
fi

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

接下来, 我们进入 $ACE_ROOT/ace 目录, 创建一个文本 config.h,内容如下:

#include "ace/config-win32.h"

切记! 虽然该目录下有一个 config-win32-mingw.h, 但这里不要使用它,否则编译时会出错!

然后, 我们进入 $ACE_ROOT/include/makeinclude 目录, 创建一个文本文件 platform_macros.GNU, 内容如下:

include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU

然后回到 $ACE_ROOT 目录, 执行 make, 经过漫长地等待后, ACE 就编译好了。 我不记得 Windows 下是否出现过 Linux 下类似的提前依赖 ACE 库的事件, 而我现在手头上没有 Windows, 如果你遇到类似的问题的话,参照 Linux 下编译的方法进行处理。

需要注意的一点是, 安装 MSys 时, 它会把你的 MinGW 中的 make.exe 改名为 mingw32-make.exe, 这样在编译的时候便会使用 MSys 中被包装过的 make.exe, 以便正常识别 Unix 风格的路径名。当编译完毕后, 为了能够正常使用 MinGW, 请把被修改的文件名改回来。当然, 在再次使用 MSys 的时候, 记得再将 make.exe 改名。

2 推荐书目

Stephen D. Huston、 James CE Johnson 和 Umar Syyid 写的 The ACE Programmer’s Guide, Practical Design Patterns for Network and System Programming 是一本非常不错的 ACE 参考书, 中文译本《ACE 程序员指南, 网络与系统编程的实用设计模式》, 封面如下, 可到 China-Pub 购买。

返回顶部↑】 【推荐好友】 【查看评论
用户名: 新注册) 密码: 匿名评论 [查看评论] 发表评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  Copyright © 2004-2005 infosecurity.org.cn . All Rights Reserved
版权所有:中国信息安全组织 系统管理:webmaster@infosecurity.net.cn
本站部分资源来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会尽快处理!