ACE之旅——环境搭建、HelloWorld

ACE之旅——环境搭建、HelloWorld

  关于ACE的好处和牛x之处在此就不说了,新工作中大量使用到了ACE,之前没有怎么研究过,经过几周的研究,大概摸清了点脉络,故开始在此写下第一篇,也是我的笔记吧。

1、构建开发环境

  我的开发环境是:Slackware 13.37 x86 Linux系统,使用ACE 5.7。编译方法如下: 

$ mkdir ~/usr/ace57

$ tar -xvf ACE-5.7.0.tar.gz

$ cd ACE_wrappers

$ mkdir build

$ cd build 

$ ../configure –prefix=$HOME/usr/ace57

$ make 

$ make install

  将ACE的库和头文件装在$HOME/usr/ace57下,由于不是Unix/Linux标准的库搜索路径,我也不想改ld.so.conf,为了编译和运行在.bash_profile中添加了如下内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/ace57/lib

export ACE_ROOT=$HOME/usr/ace57

  LD_LIBRARY_PATH是为了运行时搜索动态库用的,ACE_ROOT则是我自己定的在makefile中引用ACE的安装位置。

2、HelloWorld

  HelloWorld很简单,虽然大家都对它很不屑,但是一个简单的HelloWorld足以判断我们的环境是否正确,就像做过LFS的朋友可能中途会写好几次HelloWorld验证工具链是否正确、装完JDK有时也会顺手写个HelloWorld验证JDK是否配置正确……

  代码如下:

#include "ace/Log_Msg.h"

int ACE_TMAIN(int, ACE_TCHAR *[]) {
ACE_DEBUG((LM_DEBUG, ACE_TEXT(
"Hello, ACE !\n")));
return 0;
}

  makefile如下:(虽说这完全没必要搞makefile,但是我想把我的ACE学习过程整理成一个个的简单的小实例、小demo,也就对此也就一并写了makefile,btw:牢骚下,cnblogs插入代码为什么没有makefile的?shell的?)

first_deps = first.cpp

CC = g++
INCL = $(ACE_ROOT)/include
LIBS = $(ACE_ROOT)/lib

.SUFFIXES: .cpp.o
.cpp.o:
    $(CC) -g -I$(INCL) -c $*.cpp

first: $(first_deps)
    $(CC) -I$(INCL) -L$(LIBS) -o first $(first_deps) -lACE

clean:
    -rm *~
    -rm first

  编译,执行:

$ make

$ ./first

Hello, ACE !

(转载时请注明作者和出处。未经许可,请勿用于商业用途)
  更多文章请访问我的Blog: http://www.cnblogs.com/logicbaby


原文地址:https://www.cnblogs.com/logicbaby/p/2100587.html