您的位置:首页 > 其它

ACE开发新手上路

2010-09-19 17:47 183 查看
0.1. ACE简单环境构建

是什么?

中文介绍,很全面,很易懂。
http://wiki.huihoo.com/index.php?title=ACE
资源包
http://download.dre.vanderbilt.edu/
选择下载
ACE.tar.gz 就可以了

存放在相应路径

例如

/tmp/
cd /tmp


推荐安装
(编译成静态库,方便进一步开发
)
tar -xzf ACE-5.6.6.tar.gz
cd ACE_wrappers
mkdir build
cd build
../configure --enable-static --enable-threads --disable-ssl
make #static_libs=1


0.2. 桌前准备参考书


ACE Programmer's Guide》

1. 制作一个简单的
hello_ACE.cpp
hello_ACE.cpp
#include "ace/Log_Msg.h"

void foo (void);

int ACE_TMAIN (int, ACE_TCHAR *[])
{
ACE_TRACE(ACE_TEXT ("main"));

ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IHi Mom ")));
foo();
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IGoodnight ")));

return 0;
}

void foo (void)
{
ACE_TRACE (ACE_TEXT ("foo"));

ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IThis is ACE ")));
}


2. 制作
Makefile
文件头加入

ACE_ROOT= /tmp/ACE_wrappers
静态库需要加入

$(ACE_ROOT)/build/ace/.libs/libACE.a
动态库需要加入

-lpthread -lrt -ldl

因为没有
make install
所以
Makefile 中要加入
-L$(ACE_ROOT)/build/ace/.libs/
###############################################################################
# kk makefile
# CopyRight (R) tencent.com
###############################################################################

ACE_ROOT= /tmp/ACE_wrappers

ROOT    = ..
CC      = g++
AR      = ar cru
LINKER  = $(CC)
RM      = /bin/rm -f
USRDIR  = /usr
COMMON  = $(ROOT)/libsrc

INCLUDE = -I. -I./ -I./include -I$(ROOT) -I$(COMMON) -I$(USRDIR)/include
-I$(ACE_ROOT) -I$(ACE_ROOT)/build

LIBS = -L. -L./ -L./bin -L$(USRDIR)/lib -L$(ACE_ROOT)/build/ace/.libs/
LIBFILE = -lz -lpthread -lrt -ldl
LIBSTATIC = $(ACE_ROOT)/build/ace/.libs/libACE.a
CFLAGS = -Wall -ggdb -I $(INCLUDE) -L $(LIBS)

SRCPROC =
SRCC    =
SRCCPP =

OBJS    = $(SRCC:.c=.o) $(SRCCPP:.cpp=.o) $(SRCPROC:.pc=.o)
OBJS_SO = $(SRCC:.c=.oso) $(SRCCPP:.cpp=.oso) $(SRCPROC:.pc=.oso)

.SUFFIXES: .a .o .cpp

.cpp.o:
@echo "              "
@echo "C++ ..."
$(CC) -c $(CFLAGS) $*.cpp -o $@

TARGET = $(patsubst %.cpp,%,$(patsubst $(SRCCPP), , $(wildcard *.cpp) )) $(patsubst %.cpp,%,$(wildcard test/*.cpp))

all:$(TARGET)

$(TARGET):%:$(OBJS) %.o
@echo $(TARGET)
$(CC) -o $@ $^ $(CFLAGS) $(LIBFILE) $(LIBSTATIC)

.PHONY:clean
clean:
@$(RM) -f $(SRCPROC:.pc=.o) $(SRCPROC:.pc=.c)
@$(RM) -f $(SRCC:.c=.o) $(SRCC:.c=.oso) $(SRCCPP:.cpp=.o) $(SRCCPP:.cpp=.oso)
@$(RM) -f *.lis
@$(RM) -f $(TARGET) $(TARGET:=.o)


3. 编译测试

编译

Make hello_ace
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: