Linux下的ACE安装全攻略(转载) - 無處不在

来源:百度文库 编辑:神马文学网 时间:2024/06/03 03:37:09

Linux下的ACE安装全攻略(转载)

作者:混沌 八月 24th, 2008

原文出处:http://www.huihoo.com/forum/viewthread.php?tid=5654

作者:余涛(yut616_at_sohu.com)

由于安装说明文件“ACE-INSTALL.html”中提及的linux安装过程极少,其主要针对Unix、Windows,手动配置较多,加上本人安装后感觉“ACE-INSTALL.html”文件有些影响视听,因为主要的动作都可以由ACE包中的安装脚本ACE-install.sh自动完成,我们主要的工作就可以直接对这个安装脚本来处理即可。

1、安装环境:

linux 8.0

ACE安装包ACE+TAO+CIAO.tar.gz,

http://deuce.doc.wustl.edu/Download.html

 

http://download.dre.vanderbilt.edu/, "Latest Beta Kit",beta版既是ACE的最新版。

2、安装过程:

第一步

先设置ACE_ROOT环境,命令:

“vi /etc/profile”

在其中加入4行

ACE_ROOT=/opt/ACE

export ACE_ROOT

LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH



我是加在“export PATH USER….”后的。完成后将/etc/profile执行一次,命令:

“chmod 555 /etc/profile”

“/etc/profile”

这样我们的ACE_ROOT就设置好了,可以用如下命令查看ACE_ROOT是否设置好了:

“echo $ACE_ROOT”

这个时候最好reboot启动一次linux。



第二步

不要自己手工将ACE+TAO+CIAO.tar.gz包完全解开,特别强调不要完全解开,后面可以看到安装脚本会给我们解开它的;如果你手工解开全部,安装脚本将会将你的解压缩目录删除的!我们要做的事就只是将ACE+TAO+CIAO.tar.gz包中的ACE-install.sh安装脚本单独解出来,并对其修改。我们只要这一个文件就可以。



用mkdir建目录,如/home/my/ACE,然后将你的ACE+TAO+CIAO.tar.gz放在此目录下(用cp命令拷贝或mv命令移动到此目录)。注意这个目录将是你的一个存放ACE+TAO+CIAO.tar.gz的目录,安装脚本会来这个目录找这个文件的,这个目录和ACE_ROOT是不一样的,且ACE-install.sh也提示不要将这两个目录设置成同一个目录。ACE_ROOT将是我们的安装目标目录。

从ACE+TAO+CIAO.tar.gz解压出单个文件ACE-install.sh:

“tar –zxvf ACE+TAO+CIAO.tar.gz ACE_wrappers/ACE-install.sh”



解好后,会出来一个新的子目录“ACE_wrappers”。此时可以先将ACE-install.sh移到外面的目录来:

“mv /ACE_wrappers/ACE-install.sh .”

“.”代表当前目录。当然ACE-install.sh在什么路径下是没什么影响的,因为我们要对ACE-install.sh的内容进行修改的,里面有很多路径要修改。



好,现在在/home/my/ACE就有了ACE-install.sh,我们现在用vi对其进行修改,修改前自己可以先备份一个。命令:

“cp ACE-install.sh ACE-install.sh.bak”

“vi ACE-install.sh”



我们可以看到缺省的,这个文件是用来在UNIX下做安装的。所以我们要将其中的有关UNIX的部分换成linux即可。

先找到“MY_ACEDIR=${HOME}/aceconfig”,将其改成“MY_ACEDIR=/home/my/ACE”,就是改成我们自己建的、放有ACE+TAO+CIAO.tar.gz文件的目录,之后去掉前面的注释“#”号。

接着在下面一点,找到“MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”,将其修改成“MY_ACE_CONFIG=config-linux.h”,即改成linux下的配置文件。

继续改,找到“MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU”,将其改成“MY_ACE_GNU_MACROS=platform_linux.GNU”。这个是各种操作系统平台下的GNU宏文件设置。

好了,文件修改完毕,保存退出“:wq”。



第三步

我们的重点到了,现在就可以安装ACE了。

此时应该是在/home/my/ACE目录下,我们执行:

./ACE-install.sh

此后将是较长时间的解包、编译等待时间。这个过程将不会出现任何错误,因为安装脚本将为我们做很多事情,如:

生成config.h,生成platform_macros.GNU。

我们不需要按ACE-install.html中说的手工改东西:

不用做连接“ln -s config-sunos5-sunc++-4.x.hconfig.h”,安装脚本会给我们做好;(题外话:Windows中没有文件连接这一说,所以要自己生成一个config.h文件,再在它的里面加一句话“#include "ace/config-win32.h"”。)

不用做连接“ln -s platform_sunos5_sunc++.GNU platform_macros.GNU”。



如果编译中出现错误,如“../apps/gperf”等,请编辑$ACE_ROOT/apps下的Makefile,将其中的有关“gperf”的部分注释掉,这个东西只是一个例子,可以不去编译它。

强调一下,用ACE-install.sh来安装,会编译ACE、tests、apps等。最后会生成libACE.so及tests、apps下也会出来很多经过编译的文件。

当然如果你只是下载了ACE.tar.gz这样的单个包来安装,你可以手工改文件,再make,因为只编译ACE,工作就少了很多,手工做还可以接受。



第四步

我们来写个简单的例子看看ACE是不是能工作了。我们可以拿马维达(www.flyingdonkey.com)的“中篇:ACE程序员教程.pdf”中的生产者与消费者模式的例子来试试。这个程序是基于ACE_TASK的,多线程跑得很舒服 (代码在第5章中,大约是57页)。

我们想要编译这个hello.cpp例子,先要从一个ACE的例子目录中拷贝一份Makefile过来,这样编译方便。如我从$ACE_ROOT/examples/RMCast/Send_File下拷贝了它的Makefile。修改其中输出文件名“BIN =hello”,并修改“.obj/Sender.o .obj/Sender.so .shobj/Sender.o.shobj/Sender.so: Sender.cpp”中后面的“Sender.cpp”成“hello.cpp”。后面的“Receiver.cpp”部分就删除掉。

好,我们可以编译一个我们自己的ACE程序了,make即可。应该能通过,生成执行文件hello,大小大约为250Kb。运行之,“./hello”,当生产者与消费者相互传递消息,运行信息不断输出时,看着还是蛮带劲的,呵呵。



大功告成,安装结束,谢谢阅读。

欢迎转载,但请写明出处。在此严重感谢superkun(superkun_at_sina.com)的大力帮助