UBuntu8.04的ACE5.6编译和环境配置
2012-03-09 00:00
260 查看
ACE历时20年,耗费数千万美金,在中间件领域享有盛誉。更可贵的是,ACE彻底的开源,且没有任何限制条件,完全是共产主义的精神,让人钦佩。
ACE的Wrapper Facade模式解决了夸平台的c++编程问题。虽然我们现在有标准C++,但是目前的C++标准库对于多线程、网络通信、并发处理、进程管理以及小内存分配、共享内存、内存映射文件等诸多实际运用中的问题没有支持。相信随着时间的推移,C++标准库会越来越多的关心我们程序员实际编程中的问题,但是现在,我需要ACE.
ACE的文档在http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/index.html
,你可以从www.riverace.com下载最新的ACE安装包。
apt-get install g++来安装g++
通过新立得软件查找libssl来安装。我安装的是libssl0.9.8,libssl0.9.8-dbg,libssl-dev。
然后将ACE压缩包解压,并放到自己的目录(我的目录为/home/freebird/software)下,仔细阅读install.html中关于 unix的部分,按照上面的做,我没有使用传统方式。如果执行configure命令或者make命令时报错,通常是缺少相应的库。安装指定的库以后,一定要重新执行../configure命令。
目录/home/freebird/software/ACE_wrappers/build/ace/.libs下的libACE-5.6.so文件就是我们的动态库文件。
注意,执行make install的时候,要用sudo命令
如果不使用最新版本,也可以用下面的命令在Ubuntu中直接安装,或者用新立德搜索libace。
sudo apt-get install libace-dev libace-doc libace5.4.7c2a libssl-dev
为了确保动态连接库运行时加载正确,需要如下设置:
UBuntu8.04的配置方法--在动态库的配置文件子目录(/etc/ld.so.conf.d)里增加一个文件ace.conf
内容为:/home/freebird/software/ACE_wrappers/build/ace/.libs 这是动态链接库的目录路径,
然后执行ldconfig命令修改全局缓冲文件
如果别的linux系统没有/etc/ld.so.conf.d目录,就需要直接将/software/ACE_wrappers/ace加到/etc/ld.so.conf文件中,然后执行ldconfig命令
下面编写测试代码,如果编译通过,那么环境配置正确:
#include "ace/Log_Msg.h"
#include "ace/OS_main.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Connector.h"
#include "ace/SOCK_Stream.h"
int ACE_TMAIN(int argc, ACE_TCHAR* argv[])
{
ACE_DEBUG((LM_DEBUG,ACE_TEXT("freebird./n")));
ACE_SOCK_Connector connector;
ACE_SOCK_Stream peer;
ACE_INET_Addr peer_addr;
if(peer_addr.set(80,"192.168.22.26")==-1)
return 1;
else if(connector.connect(peer,peer_addr)==-1)
return 1;
}
编译的命令并不复杂,主要是编译参数要注意:
g++ -I$ACE_ROOT -L$ACE_ROOT/ace test.cc -lACE
-l后面指定头文件目录/home/freebird/software/ACE_wrappers
-L后面指定ACE库文件路径/software/ACE_wrappers/ace
-l后面指定库文件名称ACE
编写一个makefile也很简单,内容如下:
#define some variables
Shell=/bin/sh
CPlus=g++
CPlusInclude=-I$(ACE_ROOT)
CPlusExtraInclude=-L$ACE_ROOT/ace
Libs=-lACE
CPlusFlags=-Wall -c -g
test.out:
$(CPlus) -o test.out $(CPlusInclude) $(CPlusExtraInclude) test.cc $(Libs)
#make clean will execute this
clean:
rm -f *.o *.out
#make will ignore the file which has one of the below names
.PHONY:
clean test.out
注意:
1)编译命令一定要用tab符号开头
2).PHONY规定的clean 和 test.out,确保不会因为存在这个文件,命令不能执行
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/sheismylife/article/details/2812163
ACE的Wrapper Facade模式解决了夸平台的c++编程问题。虽然我们现在有标准C++,但是目前的C++标准库对于多线程、网络通信、并发处理、进程管理以及小内存分配、共享内存、内存映射文件等诸多实际运用中的问题没有支持。相信随着时间的推移,C++标准库会越来越多的关心我们程序员实际编程中的问题,但是现在,我需要ACE.
ACE的文档在http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/index.html
,你可以从www.riverace.com下载最新的ACE安装包。
UBuntu8.04下安装ACE开发环境
首先要确保UBuntu已经安装了g++和openssl。apt-get install g++来安装g++
通过新立得软件查找libssl来安装。我安装的是libssl0.9.8,libssl0.9.8-dbg,libssl-dev。
然后将ACE压缩包解压,并放到自己的目录(我的目录为/home/freebird/software)下,仔细阅读install.html中关于 unix的部分,按照上面的做,我没有使用传统方式。如果执行configure命令或者make命令时报错,通常是缺少相应的库。安装指定的库以后,一定要重新执行../configure命令。
目录/home/freebird/software/ACE_wrappers/build/ace/.libs下的libACE-5.6.so文件就是我们的动态库文件。
注意,执行make install的时候,要用sudo命令
如果不使用最新版本,也可以用下面的命令在Ubuntu中直接安装,或者用新立德搜索libace。
sudo apt-get install libace-dev libace-doc libace5.4.7c2a libssl-dev
使用ACE编写第一个程序
代码编写需要了解ACE的一些基本知识,所有的ace头文件都在ace目录下,我的机器上ace目录安装在/software/ACE_wrappers。为了确保动态连接库运行时加载正确,需要如下设置:
UBuntu8.04的配置方法--在动态库的配置文件子目录(/etc/ld.so.conf.d)里增加一个文件ace.conf
内容为:/home/freebird/software/ACE_wrappers/build/ace/.libs 这是动态链接库的目录路径,
然后执行ldconfig命令修改全局缓冲文件
如果别的linux系统没有/etc/ld.so.conf.d目录,就需要直接将/software/ACE_wrappers/ace加到/etc/ld.so.conf文件中,然后执行ldconfig命令
下面编写测试代码,如果编译通过,那么环境配置正确:
#include "ace/Log_Msg.h"
#include "ace/OS_main.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Connector.h"
#include "ace/SOCK_Stream.h"
int ACE_TMAIN(int argc, ACE_TCHAR* argv[])
{
ACE_DEBUG((LM_DEBUG,ACE_TEXT("freebird./n")));
ACE_SOCK_Connector connector;
ACE_SOCK_Stream peer;
ACE_INET_Addr peer_addr;
if(peer_addr.set(80,"192.168.22.26")==-1)
return 1;
else if(connector.connect(peer,peer_addr)==-1)
return 1;
}
编译的命令并不复杂,主要是编译参数要注意:
g++ -I$ACE_ROOT -L$ACE_ROOT/ace test.cc -lACE
-l后面指定头文件目录/home/freebird/software/ACE_wrappers
-L后面指定ACE库文件路径/software/ACE_wrappers/ace
-l后面指定库文件名称ACE
编写一个makefile也很简单,内容如下:
#define some variables
Shell=/bin/sh
CPlus=g++
CPlusInclude=-I$(ACE_ROOT)
CPlusExtraInclude=-L$ACE_ROOT/ace
Libs=-lACE
CPlusFlags=-Wall -c -g
test.out:
$(CPlus) -o test.out $(CPlusInclude) $(CPlusExtraInclude) test.cc $(Libs)
#make clean will execute this
clean:
rm -f *.o *.out
#make will ignore the file which has one of the below names
.PHONY:
clean test.out
注意:
1)编译命令一定要用tab符号开头
2).PHONY规定的clean 和 test.out,确保不会因为存在这个文件,命令不能执行
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/sheismylife/article/details/2812163
相关文章推荐
- UBuntu8.04的ACE5.6编译和环境配置
- UBuntu8.04的ACE5.6编译和环境配置
- UBuntu8.04的ACE5.6编译和环境配置
- 在ubuntu下安装ACE编译环境 和 Eclipse 开发环境
- 在ubuntu下安装ACE编译环境
- ubuntu14.04 配置 AOSP(android open source project)android系统源码编译环境
- Ubuntu 下 Gtk与Qt编译环境安装与配置
- 在ubuntu上安装QT Creator并配置编译环境
- Ubuntu 12.04 配置apue2环境(《unix环境高级编程》源码编译环境安装)
- Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA
- ubuntu 下交叉编译环境的搭建及环境变量的配置
- 如何配置Ubuntu编译环境
- ubuntu9.10 成功配置 交叉编译环境
- Ubuntu嵌入式开发环境配置,交叉编译环境+tftp+minicom
- Ubuntu C/C++编译环境安装配置
- Ubuntu 10.04 配置TQ2440交叉编译环境
- Ubuntu 下 Gtk与Qt编译环境安装与配置
- Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面
- 配置64位UBUNTU 编译环境出现的arm-none-linux-gnueabi-gcc: not found
- Ubuntu11.10之Android编译环境的配置及Samba服务器的搭建