随笔 - 8, 文章 - 0, 评论 - 17, 引用 - 0
数据加载中……

ACE在linux下的安装

本文详细描述了在Linux操作系统上安装和配置“自适应通信环境(ACE)”的过程和注意事项。zCkLinux联盟

文中的描述基于RedHat Linux 9操作系统和ACE 5.4版zCkLinux联盟

准备工作:zCkLinux联盟

1.确保你的Linux操作系统的开发环境(gcc、make……)是完整且可用的。zCkLinux联盟

2.在安装ACE的过程中,可能需要root权限,因此确保你拥有root帐户的密码。zCkLinux联盟

3.对于典型的Redhat9系统,autoconf程序的版本可能过低,你需要首先升级它。zCkLinux联盟

   升级的步骤如下:zCkLinux联盟

  1. 在控制台中输入 autoconf -V,查看你的autoconf程序的版本
  2. 如果低于2.57g,你需要到http://www.gnu.org/software/autoconf/去下载最新版本的autoconf程序,目前autoconf程序的版本是2.59
  3. 根据tarball中的安装说明,编译并安装升级autoconf程序

 

开始安装:zCkLinux联盟

经过上面的准备工作,现在你已经具备了安装ACE的条件。下面开始正式的安装工作。zCkLinux联盟

  1. 首先确定ACE的安装路径,并建立相应的目录。zCkLinux联盟

     

    这里,我们把ACE安装在/home/zhc/ace/的目录下,先执行zCkLinux联盟

    mkdir /home/zhc/ace

  2. 然后将获得的ACE源代码包解至该目录下。zCkLinux联盟

     

    tar zxvf ACE-5.4.tar.gz /home/zhc/ace

  3. 这时,在ace的目录下会建立一个名为ACE_wrappers的子目录,ACE所有的源代码、工具、和例子都在这个目录中。zCkLinux联盟

     

    先进入该目录,执行zCkLinux联盟

    cd /home/zhc/ace/ACE_wrapperszCkLinux联盟

    然后建立一个子目录,用于存放ACE编译后的目标文件zCkLinux联盟

    mkdir buildzCkLinux联盟

    cd build

  4. 接着,执行configure脚本,检查你的系统环境,配置并生成适合你的系统的Makefile文件。zCkLinux联盟

     

    在执行configure脚本时,可以加入许多配置选项,其详细说明可以参看ACE_wrappers目录下的ACE-INSTALL.html文件,zCkLinux联盟

    对于Redhat9系统来说,不必加任何参数,ACE就可以很好的工作了。zCkLinux联盟

    ../configure

  5. 在漫长的检查和配置之后,如果没有什么问题,你就可以开始编译了。zCkLinux联盟

     

    这一步很简单,执行zCkLinux联盟

    makezCkLinux联盟

    然后,泡一杯茶,静静的等待就行了。

  6. 如果编译顺利的通过(通常都会是这样的),那么恭喜你,你已经成功了一大半了,下面要做的仅仅是以些配置工作而已。zCkLinux联盟

     

    接下来的工作是安装,这一步是可选的,目的是把编译生成的ACE的库文件、头文件和手册页等安装到/usr/local的相应目录中去,为了今后使用的方便,我建议你还是进行这一步,执行zCkLinux联盟

    suzCkLinux联盟

    root's passwordzCkLinux联盟

    make install

  7. 安装之后,我们就可以进行最后的配置工作了。zCkLinux联盟

     

    首先设置环境变量ACE_ROOT,执行zCkLinux联盟

    setenv ACE_ROOT /home/zhc/ace/ACE_wrapperszCkLinux联盟

    注意其中的路径要根据你的实际情况而定zCkLinux联盟

    如果你不想每次都手工设定路径,可以编辑你的bash的配置文件,执行zCkLinux联盟

    cdzCkLinux联盟

    vi .bash_profilezCkLinux联盟

    在其中填加如下两行zCkLinux联盟

    ACE_ROOT=/home/work/research/ace/ACE_wrapperszCkLinux联盟

    export ACE_ROOT

  8. 然后,在$ACE_ROOT/ace目录中创建一个名为config.h的文件,在其中包含如下一行zCkLinux联盟

     

    #include "ace/config-linux.h"zCkLinux联盟

    或者,简单起见,你也可以直接建立一个指向config-linux.h的符号链接,执行zCkLinux联盟

    ln -s config-linux.h config.h

  9. 同样,在$ACE_ROOT/include/makeinclude目录中创建一个名为platform_macros.GNU的文件,在其中包含如下一行zCkLinux联盟

     

    include $(ACE_ROOT)/include/makeinclude/platform_linux.GNUzCkLinux联盟

    或者,简单起见,你也可以直接建立一个指向platform_linux.GNU的符号链接,执行zCkLinux联盟

    ln -s platform_linux.GNU platform_macros.GNU

  10. 最后一步,设置环境变量LD_LIBRARY_PATH,执行zCkLinux联盟

     

    setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$ACE_ROOT/lib:zCkLinux联盟

    /usr/local/lib:$LD_LIBRARY_PATHzCkLinux联盟

    或者在~/.bash_profile文件中添加如下两行zCkLinux联盟

    LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:zCkLinux联盟

    /usr/local/lib:$LD_LIBRARY_PATHzCkLinux联盟

    export LD_LIBRARY_PATH

 

安装完成:zCkLinux联盟

经过上面的步骤,ACE已经安装到了您的系统上了,下面我们将编译并执行ACE的例程以验证我们的工作。zCkLinux联盟

这里我们以《C++网络编程,卷一》所带的例子为例。zCkLinux联盟

  1. 进入例程目录,执行zCkLinux联盟

     

    cd $(ACE_ROOT)/examples/C++NPv1

  2. 编译例子程序,执行zCkLinux联盟

     

    makezCkLinux联盟

    如果前面的安装和配置正确,很快就能够得到编译后的例子程序。

  3. 分别执行一个服务器程序(随便哪一个都行)和一个客户端程序(Logging_Client),如果程序运行正确,说明前面的安装和配置成功,下面你就可以开始你的ACE学习之旅了

 

补充

 

下载ace 5.6
在根目录下建立一个文件夹
mkdir /ace
把下载的ace包移过去,解压得到一个文件夹ACE_wrappers
然后进入这个文件夹,看看里面的readme就可以晓得,linux下如何编译和安装
网上很多人说要建立一个config.h的文件,那是好多年前的老皇历了,readme里面没有说要建立这么个玩意,那就不建立。
直接进入主题,编译:
cd  /ace/ACE_wrappers
mkdir build
cd build
../configure 我们使用默认的option
make
make install
过程很快,然后我们进入到/usr/local目录下,可以看到include里面有ace要用的头文件,lib里面有ace要用的库文件
linux的库文件 的搜索路径如下:
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
因此,我们不用设置ace的头文件了。
但是ace库文件不是linux的自带的默认的库文件,因此我们使用的时候要带上,而ace现在的库文件并不是系统的,先看一下默认的:
 默认的动态库搜索路径/lib和/usr/lib
我们把ace所在的库文件路径添加进去:
一:
在/etc/bashrc中加入:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
重启
二:
打开/etc/ld.so.conf
本来内容是如下:
include ld.so.conf.d/*.conf
我们添加ace路径后变成如下
include ld.so.conf.d/*.conf
/usr/local/lib
保存退出!
然后执行    ldconfig
就可以了。
下面我们弄一个简单的ace程序:
/////////////////////////hello.cpp
#include "ace/OS.h"
#include "ace/Log_Msg.h"
 
int main (int argc, char *argv[])
{
          ACE_DEBUG((LM_DEBUG,"Hello, ACE!\n"));
          ACE_OS::exit(1);
          return 0;
}

这么就不写makefile了,直接用g++编译就是了。
编译
g++ hello.cpp -o hello -lACE
运行:
./hello
结果:
[root@BTazuo ~]# ./hello
Hello, ACE!

 

posted on 2008-12-31 13:37 YG 阅读(866) 评论(0)  编辑 收藏 引用 所属分类: Linux网络&ACE


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理