ACE的安装步骤

by admin on 2020年1月25日

ACE的构建(VC++6.0环境)
Windows下ACE的构建
1.
将ACE-5.5.zip解压到所需的设置目录,此处以E:为例,解压后形成ACE_wrappers文件夹,由此ACE将会存在于ACE_wrappersace目录中。ACE_ROOT=E:ACE_wrappers。

当年笔者安装ACE时,败北了三回,后来依照那么些来,才完全成功。
假若我们有人利用VC帮手的话,安装完后开发VC编写程序时,编写翻译器最上边VX会不停的加载头文件,因为它要完结能够唤起完结函数原形的功用,所以他要一切加载,不过每一遍都那样,会相比较烦,你能够点击VX的option里设置一下directory,扩张你的ace文件夹到里面,那样就OK了,终于得以爽爽的用了。

  1. 在系统中新建ACE_ROOT情形变量,值设为
    E:ACE_wrappers。具体设置为:小编的Computer->属性->高级->景况变量->新建
    3.
    在E:ACE_wrappersace目录中开创一个头文件,命名称叫config.h,其剧情为:
    #include “ace/config-win32.h”(必选项)
    #define ACE_HAS_STANDARD_CPP_LIBRAMuranoY 1
    (MSVC自带的正式C++头文件)
    // #define ACE_HAS_MFC 1(与MFC一齐利用) 未有去除时与  #define
    ACE_HAS_MFC 0冲突 zhongyunde@tom.com

 

#define ACE_NO_INLINE(撤消函数内联进而收缩静态库和平运动行码的尺寸)
#define ACE_AS_STATIC_LIBS(营造ACE的静态版本)
#define ACE_HAS_澳门新葡亰平台官网,WINNT4 0(在Windows
9x/me上营造所需,在ACE中移掉一些WinNT/Win2K中故意的代码)
上述只必要丰盛前两项就足以了。

整理方法如下:

  1. 在VC++中加载ACE的工程文件(ACE_ROOT
    aceace.dsw),在release和debug二种编写翻译格局下展开编写翻译,得到相应的库文件(ACE.dll、ACE.lib
    和 ACEd.dll、ACEd.lib卡塔尔,个中ACE.dll
    、ACE.lib是由release版生成的,ACEd.dll、ACEd.lib是由debug版生成的。具体操作方法:运转VC++,选拔Build
    ->Batch Build…,将ACE-Win32 Debug和ACE-Win32 Release全体当选,Rebuild
    All就能够。如下图所示:

少年老成. Windows下for MSVC的装置与布局

依据地点的法子只怕只编写翻译出ACE.dll
、ACE.lib库文件,具体原因还浑然不知。依照下边包车型地铁操作方法实行编译能够成功转变全部库文件。具体操作方法:Build->Set
Active Configuration…分别选中ACE-Win32 Release实行编写翻译就可以。如下图所示

咱俩用的是ACE-5.4+TAO-1.4+CIAO-0.4.zip,Windows下解压缩该滑坡包到对象路线(设为D:软件设置编制程序学习软件ACE_wrappers
),

同等张开ace_static.dsw编写翻译生成ACEs.lib、
ACEsd.lib、ACE_RMCasts.lib、ACE_RMCastsd.lib、TMCasts.lib、TMCastsd.lib

创立文件:$ACE_ROOT/ace/config.h,增添风姿洒脱行:
#include “ace/config-win32.h”

  1. 配置ACE情形。 张开VC++6.0,选用Tools->Options->Directories
    参加以下内容:
    1) Executable File:E:ACE_wrappersbin
    2) Include File:E:ACE_wrappers
    3) Library Files:E:ACE_wrapperslib
    4) Source Files:E:ACE_wrappers
    在编写程序时要在Project->Settings菜单中进行如下设置:
    C/C++选项卡:
    Code Generation:接受多线程版运维时库(Multithreaded DLL)。
    Preprocessor:在“Additional include
    directories”域中参加$ACE_ROOT。  
    Link选项卡:
    Input:在“Object/library modules”域中富含适当的ACE库文件,在“Additional
    library
    path”域中包涵ACE库链接文件的路线。那平常是ACE_ROOT/ace。
    其中 DLL debug对应ACEd.lib
        DLL release对应ACE.lib
        Static library debug对应ACEsd.lib
        Static library release对应ACEs.lib
        MFC DLL debug对应ACEmfcd.lib
        MFC DLL release对应ACEmfc.lib
       重要行使以上四个库。

  2. 在系统情况的变量
    path中参加E:ACE_wrappersbin,不然在运路程序的时候蒙受寻找ace.dll可能aced.dll的难题。

  3. 在MFC程序中动用时,应该在InitInstance(State of Qatar中加多:
    WSDATA wsData;
    WORD VerRequested = MAKEWORD (2, 2);
    WSAStarup (VerRequested, &wsData)
    注:能够在头文件中进入如下代码就不要再手动填加lib库文件
    #ifdef _DEBUG
    #pragma comment (lib,”aced.lib”)
    #else
    #pragma comment (lib,”ace.lib”)
    #endif
  4. 在windows下release时有一点都不小希望报错,错误如下:
    error C2039: ‘TryEnterCriticalSection’ : is not a member of ‘`global
    error C2065: ‘TryEnterCriticalSection’ : undeclared identifier
    消除办法:
    工程 Project–>setting–>C/C++   写入:_WIN32_WINNT=0x0500
    Linux 下ACE的构建
  5. 设置境遇变量ACE_ROOT,命令如下:
    “vi /etc/profile” ,在“export PATH USER….”后加入4行
     ACE_ROOT=/opt/ACE
     export ACE_ROOT

    LD_LIBRARY_PATH=$ACE_ROOT/ace澳门新葡亰平台官网 1LD_LIBRARY_PATH
     export LD_LIBRARY_PATH
    完 成后将/etc/profile施行叁次,命令:“chmod 555
    /etc/profile”,“/etc/profile”。那样大家的ACE_ROOT就设置好了,可以用如下命令查看ACE_ROOT是还是不是设置好了:
    “echo $ACE_ROOT” ,那个时候最佳reboot运转一回linux。
  6. 解压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将是大家的设置指标目录。
  7. 从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_ACEDILX570=${HOME}/aceconfig”,将其改成“MY_ACEDIGL450=
    /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”。
  8. 安装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学习材质
  9. ACE 程序猿指南:网络与系统一编写程的实用设计方式网络与系统一编写程的实用设计形式   ACE Programmer’s Guide practical Design
    Patterns for Network and Systems Programming
    (美)Stephen D. Huston,(美)James CE Johnson,(美)Umar Syyid著
    马维达 译 中夏族民共和国电力书局
  10. C++网络编制程序 卷1:运用ACE和方式消逝复杂性
    C++ Network Programming Volume 1 Mastering Complexity with ACE and
    Patterns
    [美]Douglas C.Schmidt,Stephen D.Huston /著 [美]DougRussC.Schmidt,斯蒂芬 D.Huston 著,於春景 译   华东国中国科学技术大学学技高校出版社
  11. C++网络编制程序,卷2 基于ACE和框架的系统化复用
    C++ network Programming, Volume 2 Systematic Reuse with ACE and
    Frameworks
    DougRuss C.Schmidt, Stephn D.Huston /著   | 马维达 译 电子工业书局
    4.
    ACE的官网  http://www.cs.wustl.edu/~schmidt/ACE.html
  12. 马维达的主页
  13. RIVERACE公司 http://www.riverace.com
  14. 灰狐         
  15.     ACE类库   

设假使在Windows
9x/Me下,必要在$ACE_ROOT/ace/config.h中#include语句前投入:
#define ACE_HAS_WINNT4 0

大范围错误
错误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_ROOTace,如E:ACE_wrappersace
编写翻译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_wrappersbin
静态满含:
   工程-设置-C/C++-预管理程序定义中步向 ,ACE_AS_STATIC_LIBS
  
  
例1server编写翻译后生成
server.exe 16K   serverd.exe 97K     servers.exe 124K serversd.exe
669K
(servers.exe较适合发表)

假使想利用standard C++
header,要求在$ACE_ROOT/ace/config.h中#include语句前投入:
#define ACE_HAS_STANDARD_CPP_LIBRARY 1

例2 client编写翻译后生成
client.exe 16K   clientd.exe 97K     clients.exe 124K clientsd.exe
669K
(clients.exe较相符发布)

要是想把MFC作为静态库链接到ACE(If you prefer to link MFC as a static
library into ACE),
则要求在$ACE_ROOT/ace/config.h中#include语句前参与:
#define ACE_HAS_MFC 1

测试 clients 127.0.0.1 1919
       servers 1919

假假造生成ACE静态库或在工程中接收ACE静态库,都需求定义以下宏:
ACE_AS_STATIC_LIBS

若果编写翻译器援救陆16位,通过怎么样宏定义来分化陆十人还是三十几位阿?
答:#define ver ((2>>31)>0?64:32)

开垦工程,D:软件设置编程学习软件ACE_wrappersace.dsw,编写翻译生成以下库:


ace.dll/ace.lib (DLL release)
aced.dll/aced.lib(DLL debug)
acemfc.dll/acemfc.lib (MFC DLL release)
acemfcd.dll/acemfcd.lib(MFC DLL debug)

给ACE初哥初妹的话

aces.lib  (Static library release)
acesd.lib (Static library debug)

给ACE初哥初妹的话

那些库可个别完成了Debug/Release, MFC/Non-MFC, Static/Dynamic library.

version 0.1.0 Stone jIang 2006-11-6

里日前八个的dll在D:软件安装编制程序学习软件ACE_wrapperslib目录下,
全体对应的.lib库文件在D:软件设置编制程序学习软件ACE_wrappersace下。

下边列出了初学ACE需求的根基知识,希望能给初学ACE的情人们一点帮扶。特加上版本号,这是为了应接批判,补充和修改装订。

ACE是网络通信中间件,借使机器未有装网卡,就仿真多个,譬喻能够从调整面板选装MS
Loopback Adapter。

1.
C++/OOP (有大器晚成对国手是C语言背景深厚的,思索难题不是面向对象,那类人学ACE须求先补补OOP观念卡塔尔(قطر‎

接下去大家创造三个新的工程,假设机器上装了不相同版本的ACE,要求针对某个版本配置,方法如下:

  1. Design Pattern
    (ACE不仅是类库,而是通过格局合作在同步的大器晚成层层有关的类,倘使对设计格局熟练,那么会用助于学习ACEState of Qatar

  2. Framework
    (Framework应该还不正规,肖似的词仍是可以够是architecture,不管用什么词语,所要建议的是,ACE不仅是类库,更是通过情势组合在一同相互同盟的类产生的毛坯。框架有别于类库,前者平时是被动的被技师写的代码调用,而框架则往往主动地调用顾客达成的接口,即闻名的好莱坞原则——
    Don’t call me , I will call you卡塔尔

  1. 配置C/C++ tab

4.Linux(作者是Linux初不者,但自从作者起来步向Linux
编制程序的时候,作者就开采,ACE多数精粹源自Linux,在此以前对ACE驾驭有限,不知情干什么那样,其实在Linux中能找到答案,ACE里闪烁着Linux的智慧。卡塔尔

(1卡塔尔 Code Generation category中应筛选适当的选项:
Multithreaded和Multithreaded DLL是for Release版的
Debug Multithreaded和Debug Multithreaded DLL是for Debug版的

  1. Richard 史蒂Vince.
    (英年早逝的理查德,应该是DougRuss的脱俗之交,他的行文影响了DougRuss,也就影响着ACE,这里要说的是TCP/IP
    Illustrated ,其实Richard其余小说,像APUE都以大滋大补的)

  2. 尚无6了。假让你感觉有,一定告诉作者。

(2) $(ACE_ROOT卡塔尔路线的配备:
假定急需针对差别版本ACE灵活配置来说,则必要安装Preprocessor
category中”Additional include directories”
那大器晚成项,指明特定版本ACE所在的门路,比方D:软件安装编制程序学习软件ACE_wrappers

  1. 链接到特定版本的ACE库。

(1卡塔尔国 在Project/Setting/Link的Input category下 “Additional library
path”中追加一定版本的ACE库文件路线,
比如D:软件设置编制程序学习软件ACE_wrappersace,然后将D:软件安装编制程序学习软件ACE_wrapperslib目录下相应的dll拷贝到工程文件所在路线下,或许在情形
变量PATH中加入D:软件安装编制程序学习软件ACE_wrapperslib。

(2卡塔尔 在Project/Setting/Link的Input category下”Object/library modules”
中钦赐要求包罗的ACE库(*.lib)

比方只装了三个ACE,可利用对具有工程都看到效果的缺省配置,方法如下:

  1. 充足意况变量:
    ACE_ROOT:  D:软件设置编制程序学习软件ACE_wrappers
    PATH 中加入:D:软件安装编制程序学习软件ACE_wrapperslib

  2. 设置VS的路径:
    Include files包含:D:软件设置编制程序学习软件ACE_wrappers
    library files包含:D:软件设置编制程序学习软件ACE_wrappersace

而后,就足以在工程中钦点须求富含的ACE库(*.libState of Qatar后健康使用了。

二. Linux下的设置与布署
1.安装
 以用户aceuser为例
 (1State of Qatar下载ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz(其余版本的也后生可畏致卡塔尔国

 (2)解压之
    #cd /home/aceuser/ace
    #tar -xzvf  ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz

 (3)
  #vi /home/aceuser/.bashrc
  参加下边两行:
  export ACE_ROOT=/home/aceuser/ace/ACE_wrappers
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace
 
  并使那么些景况变量生效(运营source 大概另行登录)。

 (4)
 
  #cd /home/aceuser/ace/ACE_wrappers/ace/
  #cp ./config-linux.h ./config.h
  #cd ../include/makeinclude/
  #ln -s ./platform_linux.GNU ./platform_macros.GNU

 (5)编译
  #cd /home/aceuser/ace/ACE_wrappers/ace/
  #make
 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图