Chinaunix首页 | 论坛 | 博客
  • 博客访问: 88287
  • 博文数量: 18
  • 博客积分: 510
  • 博客等级: 中士
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-27 20:37
文章分类

全部博文(18)

文章存档

2011年(18)

分类: C/C++

2011-04-25 21:54:22

操作系统:Centos4.7
ACE版本:ACE-6.0.2

安装过程:
下载ACE-6.0.2.tar.gz。
下载完成后将其解压tar -zxvf ACE-6.0.2.tar.gz用户登陆目录。我的解压路径为/root/ACE_wrappers。
设置环境变量,编辑/etc/profile,加入以下内容:
ACE_ROOT=/root/ACE_wrappers
export ACE_ROOT
LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

保存后别忘了输入:source /etc/profile

编译ACE:
1.选择平台配置文件,本系统应该选择config-linux.h,在$ACE_ROOT/ace 目录下新建config.h文件,在config.h中加入

#define ACE_HAS_STANDARD_CPP_LIBRARY 1

#define ACE_HAS_EVENT_POLL 1
#include "config-linux.h"

2.选择平台宏定义文件,本系统应该选择platform_linux.GNU,在$ACE_ROOT/include/makeinclude 目录下新建 platform_macros.GNU
在platform_macros.GNU中加入一行如 下:include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
3.进入$ACE_ROOT/ace/, 输入编译命令:make -f GNUmakefile, 编译生成libACE.so.6.0.2,libACE.so

Linux使用ACE编程:
我写个简单的Hello World!的程序
1.新建个hello.cpp的文件:
#include "ace/Log_Msg.h"
int ACE_TMAIN(int argc, char argv[])
{
       ACE_DEBUG((LM_DEBUG, ACE_TEXT("Hello World!\n")));
       return 0;
}
2.创建hello.mpc文件:
project(hello) : aceexe{
exename = hello
Source_Files{
       hello.cpp
}
Header_Files{
}
}
3.生成Makefile:
$ACE_ROOT/bin/mpc.pl -type make hello.mpc
4.生成可执行文件:
make -f Makefile.hello
5.运行:./hello
6.输出: Hello World!

//====================================================================

后记:也可以使用automake编译ace,例如

./configure --enable-static --enable-threads --disable-ssl --disable-acexml

make static_libs=1 versioned_so=0 optimize=1

make install

默认ace的库和头文件安装在/usr/local/lib//usr/local/include/ace/目录

注意:如果需要支持epoll,请在ace/config.h中加入 #define ACE_HAS_EVENT_POLL 1

下面3个在WIN32下定义:

//ACE的NOTIFY对列使用内存QUEUE机制,而不使用传统的PIPE

#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1

//CDR的字节对齐问题

#define ACE_CDR_IGNORE_ALIGNMENT 1

//CDR的字节对齐问题

#define ACE_LACKS_CDR_ALIGNMENT 1

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