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