今天晚上打算在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目录下生成了相应的文件,如下图所示: