Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245439
  • 博文数量: 57
  • 博客积分: 2407
  • 博客等级: 大尉
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-07 15:41
文章存档

2021年(1)

2016年(1)

2014年(3)

2012年(10)

2011年(35)

2010年(1)

2009年(3)

2008年(3)

分类: C/C++

2011-08-01 18:03:07

在Linux上使用ACE
109人阅读 评论(2) 举报

ACE自适配通信环境(ADAPTIVE Communication Environment)是可自由使用、开放源码的面向对象(OO)框架(framework),它实现了许多用于并发通信软件的核心模式。ACE提供了 一组丰富的可重用C++包装外观(wrapper facade)和框架组件,可跨多种平台,如Windows、Linux、WinCE、VxWorks等系统。它不仅实现了网络通信,还有线程、进程、内 存操作等,所以现在ACE的应用还是比较广泛的。

它的源码可以在下载

下载后解压出来一个ACE_wrappers文件夹,将其放到某个目录下面

 

然后更改~/.bash_profile文件,添加如下代码

  1. #这个目录在编译的时候会用到,因为所有的头文件都在/ACE_wrappers/ace/文件夹下面

  2. #而且它的头文件包含形式都是形式的

  3. ACE_ROOT=$HOME/ace/ACE_wrappers



  4. #这个是为了在程序运行的时候用的,因为安装好之后,它的动态库,libACE.so等都放到这个目录里面了

  5. #如果这个不设置,程序找libACE.so找不到的话,就没法正常运行

  6. LD_LIBRARY_PATH=$ACE_ROOT/lib:$LD_LIBRARY_PATH



  7. #导出这两个环境变量

  8. export ACE_ROOT
  9. export LD_LIBRARY_PATH

然后想办法让你的环境变量生效,因为我用的SecureCRT远程登录的linux,所以断开之后再连接,就生效了

 

然后再$ACE_ROOT/ace下面创建一个config.h

然后在里面添加上如下代码:

#include "ace/config-linux.h"

然后保存就行了

(ace的好多头文件都要使用config.h,而且它跨平台,就是要靠这个文件来区分的,在Windows下面,这个文件的内容好像就好像改为了: #include "ace/config-win32.h")

 

然后在如下目录:

$ACE_ROOT/include/makeinclude/

创建:

platform_macros.GNU

内容:

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

 

然后直接执行make命令,如果能成功执行完,就说明已经安装好了

但我在make的时候就出现了两个问题,开始提示某个sh脚本的执行权限不够,我就手动加上执行权限:

chmod +x file

后来又提示在脚本中存在一些其它的错误,这时候用vi打开这些脚本,然后执行:

set ff?    (这个命令查看当前文本的格式,ff,即file format)

如果出现:

fileformat=dos

则再执行如下的命令:

set ff=unix

然后保存

这样应该就能执行成功了

 

安装好之后就可以拿一个简单示例来进行测试了

下面是简单的hello world示例

  1. #include 
  2. #include "ace/Log_Msg.h"
  3. #include "ace/OS_main.h"

  4. int ACE_TMAIN(int argc, ACE_TCHAR *argv[])
  5. {
  6.         ACE_DEBUG((LM_DEBUG, "Hello World/n"));
  7.         return 0;
  8. }

 

然后执行如下命令:

g++ -Wall -I $ACE_ROOT -L $ACE_ROOT/lib -l ACE -o hello hello.cpp

 

此时应该就生成了hello

./hello

Hello World

阅读(1392) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~