ace从windows移植到linux,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联盟

在控制台中输入 autoconf -V,查看你的autoconf程序的版本

如果低于2.57g,你需要到http://www.gnu.org/software/autoconf/去下载最新版本的autoconf程序,目前autoconf程序的版本是2.59

根据tarball中的安装说明,编译并安装升级autoconf程序

开始安装:zCkLinux联盟

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

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

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

mkdir /home/zhc/ace

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

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

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

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

cd /home/zhc/ace/ACE_wrapperszCkLinux联盟

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

mkdir buildzCkLinux联盟

cd build

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

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

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

../configure

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

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

makezCkLinux联盟

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

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

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

suzCkLinux联盟

root's passwordzCkLinux联盟

make install

安装之后,我们就可以进行最后的配置工作了。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

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

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

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

ln -s config-linux.h config.h

同样,在$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

最后一步,设置环境变量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联盟

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

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

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

makezCkLinux联盟

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

分别执行一个服务器程序(随便哪一个都行)和一个客户端程序(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!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值