在网上帮你找的资料,你应该是没有安装ACE安装包。
ACE安装(VC/LINUX)
ACE安装 作者:菩提
ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)构架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++包装外观(Wrapper Façade)和构架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。
ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE还使系统的配置和重配置得以自动化。
ACE正在进行持续的改进。Riverace公司(http://www.riverace.com)采用开放源码商业模式对ACE进行商业支持。此外,ACE开发组的许多成员目前正在进行The ACE ORB(TAO,http://www.cs.wustl.edu/~schmidt/TAO.html)的开发工作。
可以从以下地址下载ACE的安装包:http://deuce.doc.wustl.edu/Download.html。这里提供有ACE的多个版本的集成包,这里以ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz为例。
VC下的安装
1.解压后放在D盘(或者自定义也可)
D:\ACE_wrappers
2.在D:\ACE_wrappers\ace目录下新建文件config.h加入一行
#i nclude "ace/config-win32.h"
3.编译:用VC6.0打开D:\ACE_wrappers\ace\ace.dsw
左侧显示 ACE DLL classes
ACE LIB classes
或1、从菜单上选择“编译”,“放置可远行配置”,选择你需要的工程配置
“编译”,“重建全部”(或任一,如ACE DLL - Win32 MFC Debug)
此过程可能持续半小时至一个小时不等
或2、从菜单上选择“编译”,“批构建”,选择你需要的工程配置
此过程可能持续二至四个钟头
产生的.lib文件位于D:\ACE_wrappers\ace\下,
产生的.dll文件位于D:\ACE_wrappers\bin\下
4.为系统变量PATH加上D:\ACE_wrappers\bin
VC下的ACE使用
1.建立工程
2.修改配置
project-->settings…-->C/C++ àCategory:Code Generation àUse run-time library设置为“Debug Multithreaded DLL”
project-->settings…-->C/C++ àCategory:Preprocessor àAdditional include directories中添加D:\ACE_wrappers
project-->settings…àLink àCategory:Input àObject/library modules:中添加aced.lib,并在下面的Additional library path里面添加路径D:\ACE_wrappers\ace
3.新建文件编辑代码
4.编译运行
5.若不能编译release版本,需在工程首处定义宏 _WIN32_WINNT为0x0400
Linux下的安装
1 先设置ACE_ROOT环境,命令:
“vi /etc/profile”
在其中加入4行
ACE_ROOT=/opt/ACE
export ACE_ROOT
LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
可以加在“export PATH USER….”后的。完成后将/etc/profile执行一次,命令:
“/etc/profile”
这样我们的ACE_ROOT就设置好了,可以用如下命令查看ACE_ROOT是否设置好了:
“echo $ACE_ROOT”
这个时候最好reboot启动一次linux。
2.假设安装文件的位置如下:/home/my/ACE/ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz
从其中解压出单个文件ACE-install.sh:
“tar –zxvf ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz ACE_wrappers/ACE-install.sh”
解好后,会出来一个新的子目录“ACE_wrappers”。修改其中的ACE-install.sh文件的如下选项:
(1) 先找到“MY_ACEDIR=${HOME}/aceconfig”,将其改成“MY_ACEDIR=/home/my/ACE”,就是改成我们自己建的、放有ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz文件的目录,之后去掉前面的注释“#”号。
(2) 找到“MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”,将其修改成“MY_ACE_CONFIG=config-linux.h”。
(3) 找到“MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU”,将其改成“MY_ACE_GNU_MACROS=platform_linux.GNU”。
保存。
3.运行该文件
./ACE-install.sh
4.将$ACE_ROOT/ace下面的libACE.so.5.4.0拷贝到/lib/目录下。
5.上述编译方法得到的为debug版本,若需获得release版本的,可在$ACE_ROOT/ace目录下重新make,命令:“#make debug=0”.
Linux下ACE的使用
Linux下的ACE项目往往需要使用makefile,相关问题参考书上教程或者示例的Makefile文件。也可以使用MW和CMPC工具生成,在此不再累述。
作者: 218.18.18.* 2006-5-29 23:13 回复此发言
--------------------------------------------------------------------------------
2 回复:ACE安装(VC/LINUX)
安装ACE 选择自 zmxjh 的 Blog
关键字 安装ACE
出处
1. 将ACE分发包界压缩到一个目录中,这将在那个目录中生成一个包含ACE的目录ACE_wrappers。接下来的步骤中假设ACE分发包被解压缩到ACE_ROOT=C:\ACE_wrappers中,因此ACE将会存在于ACE_ROOT\ace目录中。
2. 在ACE_ROOT\ace目录中创建一个文件,命名为config.h,其内容为:
#include "ace/config-win32.h"
3. 在VC++中加载ACE的工程文件(ACE_ROOT\ace\ace.dsw)
4. 每个工程都会包含多个配置,这些配置是Debug/Release, MFC/Non-MFCh和Static/Dynamic库版本等选项的混合。确定你所需要的构造(例如,调试代码需要ACE的调试版本)。所有这些不同的配置可以为你提供一些便利,你可以或者采用不同的模式以构造不同配置的应用,或者通过改变ace\config.h来改变在NT上的不同配置。
注意:如果你使用动态连接,请保证ACE_ROOT\bin被添加到你的path环境变量中,否则你将在运行程序的时候碰到寻找ace.dll或者aced.dll的问题。
5. 如果你在Windows NT或者Windows 2k上构建ACE,你可以马上开始构造她而不需任何改变,如果你在Windows 9x/me上构建,那么你必须在
ACE_ROOT\ace\config.h.的#include块之前添加一行:
#define ACE_HAS_WINNT4 0
这将在ACE中移掉一些WinNT/Win2K中特有的代码。
6. 如果你希望使用MSVC自带的标准C++头文件(C++ Standard Draft 2种定义的iostream,cstdio…..),则应该在
ACE_ROOT\ace\config.h.的#include块之前添加一行:
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
7. 如果需要和MFC一起使用,增加如下定义到你的config.h文件中,注意,如果你想使用spawn一个新的线程,则必须保证使用THR_USE_AFX标志来spawn线程。
#define ACE_HAS_MFC 1
?? 注:我使用该宏编译ACE时不能通过,有知道的朋友请赐教。
8. 如果要构建ACE的静态版本,则需要在config.h中定义ACE_AS_STATIC_LIBS,此宏在那些希望使用ACE的静态版本的应用工程中也必须定义。
作为一个可选项,你可以在
#include statement in ACE_ROOT\ace\config.h.之前添加一行:
#define ACE_NO_INLINE
来取消函数内联从而减小静态库(和你的运行码)的大小。
9. ACE DLL和LIB库的命名规则:
我们使用如下的规则明明使用MSVC的ACE的DLL和LIB文件。
"Library/DLL name" + (是静态库吗 ? "s" : "") + (包含调试信息 ? "d" : "") + {".dll"|".lib"}
在MSVC环境中使用ACE的更多信息可以在这里找到。
将ACE与VC6集成在一起
一.打开 Tools>Options>Directories
加入以下内容:
Executable File:
C:\ACE_wrappers\bin
Include File:
C:\ACE_wrappers\
Library Files:
C:\ACE_wrappers\ACE
Source Files:
C:\ACE_wrappers\
二.加入 C:\ACE_wrappers\bin 到系统环境变量 path中
在MFC程序中使用时,应该在InitInstance()中添加:
WSDATA wsData;
WORD VerRequested = MAKEWORD(2,2);
WSAStarup(VerRequested,&wsData)
作者: 218.18.18.* 2006-5-29 23:33 回复此发言
--------------------------------------------------------------------------------
3 C++网络开发包ACE环境的配置与调试 qiek(原作)
C++网络开发包ACE环境的配置与调试 qiek(原作)
关键字 ACE VC 安装 配置 调试 问题 解决
ACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。
估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。
我的系统环境是:Win2k pro(sp4)、VC6.0 (sp5)
过一阵,我的主页上要开论坛,并设VC专区,欢迎大家上去交流
http://www.liufei.com
一、ACE官方主页:http://www.cs.wustl.edu/~schmidt/ACE.html
下载地址:http://deuce.doc.wustl.edu/Download.html
我下载的是Latest Beta Kit中的ACE.zip(Latest Release中的压缩包好像有问题,我有WinRAR3.30解压缩报错)
二、解压缩后放在D盘
D:\ACE_wrappers
三、在D:\ACE_wrappers\ace目录下新建文件config.h加入一行
#include "ace/config-win32.h"
四、编译:用VC6.0打开D:\ACE_wrappers\ace\ace.dsw
左侧显示 ACE DLL classes
ACE LIB classes
或1、从菜单上选择“编译”,“放置可远行配置”,选择你需要的工程配置
“编译”,“重建全部”(或任一,如ACE DLL - Win32 MFC Debug)
此过程可能持续半小时至一个小时不等
或2、从菜单上选择“编译”,“批构建”,选择你需要的工程配置
此过程可能持续二至四个钟头
产生的.lib文件位于D:\ACE_wrappers\ace\下,
产生的.dll文件位于D:\ACE_wrappers\bin\下
同样打开ace_static.dsw
编译
ACEs.lib
ACEsd.lib
ACE_RMCasts.lib
ACE_RMCastsd.lib
TMCasts.lib
TMCastsd.lib
ACE生成的dll和lib文件的命名规则:(d = debug,s = static)
debug - aced.lib、debug+static - acesd.lib、release - ace.lib、 release+static - aces.lib
五、样例程序的编译
用VC打开D:\ACE_wrappers\tests\tests.dsw
“编译”,“批构建”
六、自写程序的工程配置
中篇:ACE程序员教程.pdf中的样例程序:
网址:http://www.cs.wustl.edu/~schmidt ... uide-tutorials.html
将网页上的原代码复制到一新建文件,并命名为server.cpp
用VC打开,编译,重建全部,弹出对话框,“This build command require ...“,点”是“
会出现以下错误
如果有“Cannot open include file: 'ace/SOCK_Acceptor.h': No such file or directory”
工程-设置-C/C++: Preprocessor,附加包含路径:D:/ACE_wrappers
如果有“ You must link against multi-threaded libraries when using ACE (check your project settings)”
工程-设置-C/C++: Code Generation - Use run-time library : Debug Multithreaded Dll
如果有“error C2065: 'ACE_ERROR' : undeclared identifier”
error C2065: 'ACE_DEBUG' : undeclared identifier
#include "ace/Log_Msg.h"
error C4716: 'ace_main_i' : must return a value
在main中加入
return 0;
“error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl”
工程-设置-Link-Input: 对象/库模块:添加aced.lib 附加库路径:D:\ACE_wrappers\ace
编译client中遇到的问题
1、error C2039: 'sprintf' : is not a member of 'ACE_OS'
#include "ace/OS_NS_stdio.h"
2、error C2039: 'strlen' : is not a member of 'ACE_OS'
#include "ace/OS_NS_string.h"
3、error C2059: syntax error : '?'
错误在这一句: ACE_DEBUG((LM_DEBUG,?Usage egX <hostname> <port_number>\n?));
将?改为"
4、无法找到动态链接库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 |