• ACE服务端编程1:使用VS2010编译ACE6.0及从ACE5.6升级的注意事项


    ACE是一个跨平台的用于并发通信的C++框架,项目开始时使用的是ACE 5.6发布版,目前最新的ACE版本是6.3.0。

    网上一直有一种黑ACE的氛围,主要黑点在于ACE的复杂和作者的背景,结合实际应用的经验来说,ACE还是C++里最成熟、稳定、全面的网络通信框架,看看有多少论文是与ACE有关的就能验证这一点,如果喜欢轻量级的,可以试试boost asio、Muduo,不过各有坑点~

    考虑项目的稳定性和开发环境的原因,此次选择了ACE6.0.0版本作为升级版本,编译工具也从VS2003升级到VS2010。

    使用VS2010编译ACE6.0:

    1、下载ACE6.0版:

    下载地址:http://download.dre.vanderbilt.edu/previous_versions/

    最新版本下载地址:http://download.dre.vanderbilt.edu/

    直接选择ACE-6.0.0.zip,不包含TAO+CIAO+DAnCE这些框架。。

    2、将压缩包中的文件夹解压到D盘;

    3、添加环境变量:ACE_ROOT="D:Ace6.0ACE_wrappers"  这是ACE解压后的目录:

    4、添加环境变量:Path="%ACE_ROOT%lib":

    5、在ACE_ROOTace目录下新建config.h文件,文件内容:

    #include "ace/config-win32.h"

    6、直接用VS2010打开ACE_vc10.sln进行编译;编译成功后悔在lib目录下生成Aced.dll和Ace.dll。

    ACE的项目划分较细,解决方案下有684项目,不过编译时间很快。

    ACE6.0从ACE5.6升级的注意事项

    开发工具同时从VS2003升级到VS2010,升级的过程较为顺利,虽然项目转换后报出100多个错误,不错主要是以下两个原因:

    1、ACE5.6中的OS.h文件在6.0中被删除,改为OS_main.h,可以看到OS_main.h有下面这段注释:

    解决办法:更改所有OS.h的include。

    2、ACE_OS::lseekACE_OS::openACE_OS::close等函数报错,主要是ACE6.0中的文件IO模式有改变,并且默认不再包含其引用。

    解决办法:在项目中引入以下几个头文件。

    #include <ace/OS_NS_string.h>
    #include <ace/OS_NS_stdio.h>
    #include <ace/FILE_Addr.h>
    #include <ace/FILE_Connector.h>
    #include <ace/FILE_IO.h>
    #include <ace/OS_NS_sys_stat.h>
    #include <ace/OS_NS_unistd.h>
    #include <ace/OS_NS_fcntl.h>
    

     


    记录,为更好的自己!

  • 相关阅读:
    js高级程序设计 笔记 --- 引用类型
    es6 简单封装一个 省市县三级下拉框
    js中元素、触点等各种距离的总结
    css实现视觉差的滚动
    js的节流和防抖
    js关于原型,原型链的面试题
    深入理解promise
    vue 同一个组件的跳转, 返回时保留原来的下拉位置
    es6 封装一个登录注册的验证滑块
    洛谷P3203 [HNOI2010]弹飞绵羊(lct)
  • 原文地址:https://www.cnblogs.com/ym123/p/4277256.html
Copyright © 2020-2023  润新知