Linux 下ACE的构建

转载 2012年03月29日 14:05:36
Linux 下ACE的构建
1. 设置环境变量ACE_ROOT,命令如下:
“vi /etc/profile” ,在“export PATH USER….”后加入4行
 ACE_ROOT=/opt/ACE
 export ACE_ROOT
 LD_LIBRARY_PATH=$ACE_ROOT/aceLD_LIBRARY_PATH
 export LD_LIBRARY_PATH
完 成后将/etc/profile执行一次,命令:“chmod 555 /etc/profile”,“/etc/profile”。这样我们的ACE_ROOT就设置好了,可以用如下命令查看ACE_ROOT是否设置好了: “echo $ACE_ROOT” ,这个时候最好reboot启动一次linux。
2. 解压ACE.tar.gz包:
不 要自己手工将ACE.tar.gz包完全解开,特别强调不要完全解开,后面可以看到安装脚本会给我们解开它的;如果你手工解开全部,安装脚本将会将你的解 压缩目录删除的!我们要做的事就只是将ACE.tar.gz包中的ACE-install.sh安装脚本单独解出来,并对其修改。我们只要这一个文件就可 以。用mkdir建目录,如/home/my/ACE,然后将你的ACE.tar.gz放在此目录下(用cp命令拷贝或mv命令移动到此目录)。注意这个 目录将是你的一个存放ACE.tar.gz的目录,安装脚本会来这个目录找这个文件的,这个目录和ACE_ROOT是不一样的,且ACE- install.sh也提示不要将这两个目录设置成同一个目录。ACE_ROOT将是我们的安装目标目录。
3. 从ACE.tar.gz解压出单个文件ACE-install.sh,命令如下:
“tar –zxvf ACE+TAO+CIAO.tar.gz ACE_wrappers/ACE-install.sh”
解 好后,会出来一个新的子目录“ACE_wrappers”。此时可以先将ACE-install.sh移到外面的目录来:“mv /ACE_wrappers/ACE-install.sh .” “.”代表当前目录。当然ACE-install.sh在什么路径下是没什么影响的,因为我们要对ACE-install.sh的内容进行修改的,里面有 很多路径要修改。现在在/home/my/ACE就有了ACE-install.sh,我们现在用vi对其进行修改,修改前自己可以先备份一个。命令: “cp ACE-install.sh ACE-install.sh.bak”,“vi ACE-install.sh”先找到“MY_ACEDIR=${HOME}/aceconfig”,将其改成“MY_ACEDIR= /home/my/ACE”,就是改成我们自己建的、放有ACE.tar.gz文件的目录,之后去掉前面的注释“#”号。接着在下面一点,找到 “MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”,将其修改成“MY_ACE_CONFIG=config- linux.h”,即改成linux下的配置文件。继续改,找到“MY_ACE_GNU_MACROS=platform_sunos5_sunc++. GNU”,将其改成“MY_ACE_GNU_MACROS=platform_linux.GNU”。这个是各种操作系统平台下的GNU宏文件设置。文件 修改完毕,保存退出“:wq”。
4. 安装ACE:
此时应该是在/home/my/ACE目录下,我们执行: h./ACE-install.sh
此 后将是较长时间的解包、编译等待时间。这个过程将不会出现任何错误,因为安装脚本将为我们做很多事情,如:生成config.h,生成 platform_macros.GNU。我们不需要按ACE-install.html中说的手工改东西:不用做连接“ln -s config-sunos5-sunc++-4.x.h config.h”,安装脚本会给我们做好;(题外话:Windows中没有文件连接这一说,所以要自己生成一个config.h文件,再在它的里面加一 句话“#include "ace/config-win32.h"”。)
如果编译中出现错误,如“../apps/gperf”等,请编辑$ACE_ROOT/apps下的Makefile,将其中的有关“gperf”的部分注释掉,这个东西只是一个例子,可以不去编译它。
强调一下,用ACE-install.sh来安装,会编译ACE、tests、apps等。最后会生成libACE.so及tests、apps下也会出来很多经过编译的文件。
当然如果你只是下载了ACE.tar.gz这样的单个包来安装,你可以手工改文件,再make,因为只编译ACE,工作就少了很多,手工做还可以接受。
ACE学习资料
1. ACE 程序员指南:网络与系统编程的实用设计模式 网络与系统编程的实用设计模式   ACE Programmer's Guide practical Design Patterns for Network and Systems Programming
(美)Stephen D. Huston,(美)James CE Johnson,(美)Umar Syyid著
马维达 译 中国电力出版社
2. C++网络编程 卷1:运用ACE和模式消除复杂性
C++ Network Programming Volume 1 Mastering Complexity with ACE and Patterns
[美]Douglas C.Schmidt,Stephen D.Huston /著 [美]Douglas C.Schmidt,Stephen D.Huston 著,於春景 译   华中科技大学出版社
3. C++网络编程,卷2 基于ACE和框架的系统化复用
C++ network Programming, Volume 2 Systematic Reuse with ACE and Frameworks
Douglas C.Schmidt, Stephn D.Huston /著   | 马维达 译 电子工业出版社
4. ACE的官方网站  http://www.cs.wustl.edu/~schmidt/ACE.html
5. 马维达的主页 http://www.flyingdonkey.com/
6. RIVERACE公司 http://www.riverace.com
7. 灰狐          http://www.huihoo.com/
8.     ACE类库    http://dev.csdn.net/article/40/40700.shtm


常见错误
错误1:
“Cannot open include file: ace/SOCK_Acceptor.h: No such file        or directory”
解决方法:
Project->settings->C/C++: Preprocessor的Additional include directories中加入$ACE_ROOT,如E:/ACE_wrappers
错误2:
“You must link against multi-threaded libraries when using ACE (check your project settings)”
解决方法:
Project->settings->C/C++: Code Generation 的Use run-time library : Debug Multithreaded Dll
错误3:
“error C2065: ACE_ERROR : undeclared identifier”
“error C2065: ACE_DEBUG : undeclared identifier”
解决方法:
在原马中加入#include ace/Log_Msg.h
错误4:“error C4716: ace_main_i : must return a value”
解决方法:
在main中加入return 0;
错误5:
“error LNK2001: unresolved external symbol __declspec(dllimport) int __cdecl”
解决方法:
Project->settings->Link->Input: Object/library Modules加入aced.lib ,Additional Library Path中加入$ACE_ROOT\ace,如E:\ACE_wrappers\ace
编译client中遇到的问题:
错误6:
error C2039: sprintf : is not a member of ACE_OS
解决方法:#include ace/OS_NS_stdio.h
错误7:error C2039: strlen : is not a member of ACE_OS
解决方法:#include ace/OS_NS_string.h
错误8:无法找到动态链接库aced.dll于指定的路径
解决方法:为系统变量PATH加上D:\ACE_wrappers\bin
静态包含:
   工程-设置-C/C++-预处理程序定义中加入 ,ACE_AS_STATIC_LIBS
  
  
例1server编译后生成
server.exe 16K   serverd.exe 97K     servers.exe 124K serversd.exe 669K
(servers.exe较适合发布)

例2 client编译后生成
client.exe 16K   clientd.exe 97K     clients.exe 124K clientsd.exe 669K
(clients.exe较适合发布)

测试 clients 127.0.0.1 1919
       servers 1919


如果编译器支持64位,通过什么宏定义来区分64位还是32位阿?
答:#define ver ((2>>31)>0?64:32)
-------------------------------------------------------
给ACE初哥初妹的话

给ACE初哥初妹的话

version 0.1.0 Stone jIang 2006-11-6

下面列出了初学ACE必要的基础知识,希望能给初学ACE的朋友们一点帮助。特加上版本号,这是为了欢迎批判,补充和修订。

1. C++/OOP (有一部分高手是C语言背景根深蒂固的,思考问题不是面向对象,这类人学ACE需要先补补OOP思想)

2. Design Pattern (ACE不仅仅是类库,而是通过模式协同在一起的一系列相关的类,如果对设计模式熟悉,那么会用助于学习ACE)

3. Framework (Framework应该还不正式,相似的词还可以是architecture,不管用啥词语,所要指出的是,ACE不仅仅是类库,更是通过模式组合在一 起相互协作的类形成的半成品。框架有别于类库,后者通常是被动的被程序员写的代码调用,而框架则往往主动地调用用户实现的接口,即著名的好莱坞原则—— Don't call me , I will call you)

4.Linux(我是Linux初不者,但自从我开始进入Linux 编程的时候,我就发现,ACE许多精华源自Linux,以前对ACE理解有限,不知道为什么这样,其实在Linux中能找到答案,ACE里闪烁着Linux的智慧。)

5. Richard Stevens. (英年早逝的Richard,应该是Douglas的良师益友,他的著作影响了Douglas,也就影响着ACE,这里要说的是TCP/IP Illustrated ,其实Richard其他著作,像APUE都是大滋大补的)

6. 没有6了。如果你认为有,一定告诉我。
http://www.programfan.com/blog/article.asp?id=29494

Linux 下ACE的构建

Linux 下ACE的构建 1. 设置环境变量ACE_ROOT,命令如下: “vi /etc/profile” ,在“export PATH USER….”后加入4行   ACE_ROOT=/opt...

ACE在linux下的安装和实例运行详细步骤

ace库的编译与试用一、下载安装包 下载地址:http://download.dre.vanderbilt.edu/ 由于我只需要使用ACE,因此我只下载了ACE.tar.gz。ps:我得安装环境...

对ACE锁、条件变量、信号量在windows和linux平台下的测试

Windows版本 1 ACE_Thread_Mutex  场景1: 4836 ACE_Thread_Mutex::acquire ret 0 [202049422-202049422]. 1...

Linux AS4 安装ACE记录

本文参照网络文章,同时结合自己的实践写的   1、获取安装包 到ACE的官方网站http://www.cs.wustl.edu/~schmidt/ACE.html或者http://riverac...

ACE6.3.3 在Linux上的安装

严重注意:ACE6.3.3是没有configure配置文件的,不能和之前5.x版本一样去执行configure配置 从 ACE 官网(http://download.dre.vanderbilt.ed...

Linux+ACE 网络编程系列 1 环境布置

c/c++在liunx网络环境下的应用程序开发是一个复杂的问题,在这个开源环境内学习网络编程对于强化程序员的网络构架知识很有帮助。 这么大的题目,里面的文章当然不会少,这里从c/c++上的一个著名的网...

Linux 系统中如何安装配置ACE

Linux 系统中如何安装配置ACE [日期:2009-06-03] 来源:blog.sina.com.cn/betasoftking 作者:betasoftking [字体:大...

ACE版虚拟机linux下usb转串口minicom与s3c6410通信——有图有真相哦!

步骤如下: 1、关闭linux电源时打开Vmware workstation ,单击菜单栏上的VM下的setting,进入virtual       machine setting对话框 ...

ACE在Linux下编译安装

下载地址: http://download.dre.vanderbilt.edu/ACE版本:ACE-6.2.2.tar.bz2下载完成后解压路径为:/root/ACE/ACE_wrappers设置环...

LINUX下安装 ACE

最近打算开始学习Linux下的C++程序开发,经过几天的搜索,发现ACE这套框架不错,最主要的是能够跨平台。不过在安装的过程中还是走了不少的弯路,在此记录下来。一、下载安装包 下载地址:[url...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux 下ACE的构建
举报原因:
原因补充:

(最多只允许输入30个字)