ACE6.3.3 在Linux上的安装

news/2025/2/23 16:15:27

安装环境为centos。
严重注意:ACE6.3.3是没有configure配置文件的,不能和之前5.x版本一样去执行configure配置

1.从 ACE 官网(http://download.dre.vanderbilt.edu/)下载 ACE-6.3.3.tar.bz2,放在/home/yourname; 用

tar xvjf ACE-6.3.3.tar.bz2解压得到 /home/yourname/ACE_wrappers

su 到 root 账户下(如果没有root账户也可以,但是显然有些地方的写文件存在问题,比如笔者将其安装在编译服务器上,但是也木有root权限,最终安装生成的文件存放在/usr/local目录下就成了奢望,只好放在自己的目录下)

2 设置环境变量: ACE_ROOT=/home/yourname/ACE_wrappers; export ACE_ROOT

备注: 这里是临时的环境变量设置,如果想后面使用的时候每次都有这个,把设置写进 .bash_profile

3 创建文件#ACE_ROOT/ace/config.h 写入如下内容 #include "ace/config-linux.h"

备注: 这里可以定义宏,改变 ACE 的某些特性

4.创建文件 #ACE_ROOT/include/makeinclude/platform_macros.GNU写入 include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

备注: 这里是 build configuration, include 前不需要 #

这步比较重要,否则make可能会出错.

5 可以在 platform_macros.GNU 里写入 INSTALL_PREFIX = /home/yourname/yourAceInstallDir/ 来制定输出目录

6 设置环境变量

LD_LIBRARY_PATH=$ACE_ROOT/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH

7 make

备注: 这步需要回到/home/yourname/ACE_wrappers目录下去执行。
这步时间比较长
若前面的第5步的GNU有错误,可以make clean之后再重新make,不过耗时啊。

8 make install 【 在root下export ACE_ROOT=/home/yourname/software/ACE_wrappers】

备注: 这里是把 lib, include, share, 和 bin 输出到 INSTALL_PREFIX 目录下。

9 测试安装是否成功

创建helloworld.cpp,写入以下内容:

#include "ace/Log_Msg.h"

int ACE_TMAIN(int argc, char* argv[])

{

ACE_DEBUG((LM_DEBUG, ACE_TEXT("Hello World!\n")));

return 0;

}

输入# g++ helloworld.cpp -o hello –lACE

再输入# ./hello

如果看到屏幕上打出“Hello World!”则代表安装的ace可用。

参考:

http://www.cnblogs.com/junnyfeng/archive/2013/01/28/2880564.html
http://www.aichengxu.com/view/42442


http://www.niftyadmin.cn/n/739280.html

相关文章

ACE框架理解(一)

一、框架的理解 1框架与类库之间的比较 类强调数据及对数据操作的方法的内聚性,所以其支持比函数库更加有效的小规模的复用。且其并未捕捉软件中的规范控制流、协作和可变性,因而虽广泛应用但有效范围有限。 类库为第一代面向对象的开发技术。而框架被…

ACE框架理解(二)服务以及配置的设计空间

一、服务以及服务器设计空间 1.短持续事件服务与长持续事件服务 当系统资源或许能够在别的地方被更好地利用时却占据它们,以及当需要时重新启动一项服务所需要的开销之间的权衡,是这一设计空间所包含的主要权衡要素。 2.内部服务与外部服务 服务初始…

ACE_Reactor(一)整体理解ACE_Reactor

ACE_Reactor框架的任务: 检测来自于各种各样事件源的事件的发生将事件多路分离到他们的预先注册的事件处理器上将事件分派给由处理器所定义的挂钩方法,以按照应用程序所定义的方式来处理事件 ACE_Reactor类的实现。 接口声明放在Reactor.h中&#xff…

ACE_Reactor(二)ACE_Dev_Poll_Reactor

ACE_Reactor一些重要的细节 看下具体ACE_Dev_Poll_Reactor的实现,如何将一个处理集和handle关联起来,代码如下: int ACE_Dev_Poll_Reactor ::register_handler_i(handle, event_handler,mask) //step 1 if(this->handler_rep_.find(hand…

ACE_Reactor(三)ACE_Select_Reactor_T

源码可以到http://www.aoc.nrao.edu/php/tjuerges/ALMA/ACE-5.5.2/html/ace/上去找. ACE_Select_Reactor_T主要是使用select来进行多路复用和分离。为了监测多个fd,ACE中新增了ACE_Handle_Set,就像类说明的说的,C wrapper facade for the socket c fd_s…

ACE_Reactor(四):ACE_WFMO_Reactor

实现接口不同于类Unix平台上,select在windows上仅仅支持socket句柄的多路分离。而且在Unix平台上,select也不支持同步对象、线程或者SystemV消息队列的多路分离。 所以windows上增加了以WaitForMultipleObjets系统函数替代select的ACE_WFMO_Reactor类。…

ACE_Reactor(五)ACE_TP_Reactor和ACE_Select_Reactor的区别

在ACE_Select_Reactor_T的handle_events中,进去就会获取Token,调到ACE_Guard直至ACE_Token的share_acquire函数,会调用一个sleepHook,这个hook的代码是: 00058 // Used to wakeup the reactor. 00059 00060 template…

ACE_Reactor(六)ACE_TP_Reactor

源码可以到http://www.aoc.nrao.edu/php/tjuerges/ALMA/ACE-5.5.2/html/ace/上去找 虽然ACE_Select_Reactor是灵活的,但是由于只有拥有者才能调用它的handle_events方法,所以在多线程应用程序中它还是有一定的局限性的,因而ACE_Select_React…