to myself 的分类学习日志

做自己想做的事
posts - 232, comments - 6, trackbacks - 0, articles - 0

ACE的编译

Posted on 2013-11-15 16:26 kongkongzi 阅读(480) 评论(0)  编辑 收藏 引用 所属分类: c++ network library


  • 在Windows上编译ACE:
    1. 安装ActivePerl-5.14
    2. 设置环境变量ACE_ROOT
    3. 创建文件 $ACE_ROOT/ace/config.h,写入如下内容
      • #include "ace/config-win32.h"
    4. X:\third\ACE_wrappers>bin\mwc.pl -type vc9 ACE.mwc
    5. 打开ACE.sln编译
  • 在Linux上编译ACE:
    1. 设置环境变量
      • vim ~/.bashrc
      • export ACE_ROOT=/home/yourname/ACE_wrappers
      • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace
    2. 创建文件 $ACE_ROOT/ace/config.h,写入如下内容
      • #include "ace/config-linux.h"
    3. 创建文件 $ACE_ROOT/include/makeinclude/platform_macros.GNU 写入
      • include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
    4. 可以在 platform_macros.GNU 里写入 INSTALL_PREFIX=/home/yourname/ace_install_dir/ 来制定输出目录
    5. ./bin/mwc.pl -static -type make ACE.mwc
    6. make ACE 
    7. 生成:ar rv ../lib/libACE.a Local_Name_Space.o ....o
  • 支持使用ACE_Dev_Poll_Reactor:
    1. Dev_Poll_Reactor这个文件编译需要定义ACE_HAS_EVENT_POLL宏,否则跳过,不编译。于是在config.h里面加入了#define ACE_HAS_EVENT_POLL重新编译库,再重新编译测试文件,全部成功,运行正常。
    2. 注意生成的libACE.a的路径和你程序连接的路径是否一致。一般通过MPC生成的库存在于$(ACE_ROOT)/lib/目录下,而通过autoconf 和 automake生成的库存在于$(ACE_ROOT)/build/ace/.libs/目录下。

参考: http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/MPC/docs/USAGE




只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理