大文

关注C\C++开发与架构

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

今天晚上打算在windows平台上编译安装ACE,特记录此过程,希望与大家共勉.

一、准备工作

windows系统:windows xp

            IDE:Visual Studio Team System 2008(即Version 9版本)

           ACE:下载链接http://download.dre.vanderbilt.edu/,选择Latest Micro Release Kit项下的ACE.zip即可;我下载的版本为6.0.2;页面如下图所示:

二、解压使用

解压已下载的压缩包;我把它直接解压到C盘下,即最后的主目录结构为:C:\ACE_wrappers;

双击C:\ACE_wrappers目录下的ACE-INSTALL.html文件,按照提示即可一步一步的进行在windows下的编译安装;

三、编译安装一般规则

1.Many features in ACE can be modified by defining some macros in $ACE_ROOT/ace/config.h. These macros should always appear before including your       platform specific config file.  

ACE中的许多特性可以通过在C:\ACE_wrappers\ace\config.h中配置宏来进行修改,这些宏应该在你的特定平台配置文件之前被包含 

2.However, if you want to undefine/redefine macros defined in the platform specific config file, these #undef should come after the config file.  

然后,如果你想取消/重定义在特定平台配置文件中定义的宏,那么这些#undef指令应该包含中配置文件之后 

3.If you're planning to build ACE on multiple platforms, you may want to consider cloning the source tree before you start.  

如果你计划在多种平台上编译ACE,你可以需要考虑克隆源码树

四、具体编译安装

1.在C:\ACE_wrappers\ace\目录下创建名字为config.h的文件,在该文件中加入#include "ace/config-win32.h"语句.

2.双击C:\ACE_wrappers\ace\ace_vc9.sln文件,这时Visual Studio Team System 2008就打开了该解决方案.

3.你可以通过在工程属性中设置你所需的配置,或是使用ace/config.h来进行调整,在这里我使用了其默认的配置,即生成Debug版的动态链接库,如下图所示:

4.如果需要在ACE中使用MFC库,则需要在config.h文件中加入下行语句,如果你希望产生继承于CWinThread类的线程,确保在产生线程时使用THR_USE_AFX  标志;

  #define ACE_HAS_MFC 1

如果希望静态链接MFC库(默认为动态链接),则定义ACE_USES_STATIC_MFC宏即可. 然而,如果你想静态链接所有东东(包括MSVC运行时库),则你必须自己修改ACE的工程 设置了;

5.如果要编译ACE为静态库,则可以定义ACE_AS_STATIC_LIBS宏,这个宏也应该被包含在静态链接ACE库的应用程序中.你也可在config.h的#include语句前增加 #define     ACE_NO_INLINE来不使能(enable:使能,disable:不使能)inline函数以至减少静态库的大小;

6.ACE dll 和lib库的命名规则:"Library/DLL name" + (Is static library ? "s" : "") + (Is Debugging enable ? "d" : "") + {".dll"|".lib"} 举例如下:如果是Debug模式下的动态库,则命名为ACEd.dll;

五、编译安装结果验证

我只是使用了具体编译安装条目中的1和2项,因为其他项都可选的,是根据具体项目进行配置的;编译工程,结果编译成功,在C:\ACE_wrappers\lib目录下生成了相应的文件,如下图所示:

posted on 2011-05-20 00:17  大文  阅读(9076)  评论(1编辑  收藏  举报