Windows平台上编译安装ACE

Windows平台上编译安装ACE 收藏
一、获取ACE   http://download.dre.vanderbilt.edu/。
     二、ACE的编译和安装步骤见http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html。TAO的编译和安装步骤见http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/TAO/TAO-INSTALL.html。如果你英文程度还可以的话,最好直接阅读这两篇文档。

     ACE的编译与安装一般规则

     ACE中的许多特性可以通过在ACE_wrappers/ace/config.h中定义一些宏来进行修改。这些宏应该总是在包括针对你的平台的配置文件之前出现。

     但是,如果你想要取消/重定义在针对特定平台的配置文件中定义的宏,#undef应该在配置文件之后出现。

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

步骤:

     1. 将ACE发布文件解压缩到某个目录中,在其中将会创建含有所有文件的ACE_wrappers目录。在下面的步骤中,ACE_wrappers目录为D:\ACE_wrappers。

     2. 在D:\ACE_wrappers\ace目录中创建一个名为config.h的文件,在其中包含:

            #include “ace/config-win32.h”

     3. 现在加载ACE的项目文件(D:\ACE_wrappers\ace\ace_vc8.sln)。

     4. 其中的每个项目都含有若干不同的配置(可混合Debug/Release、MFC/Non-MFC、Static/Dynamic library版本)。你可以从中选择你所需的配置,或是使用ace/config.h来进行调整。
注意:如果你使用动态链接库,在运行使用ACE的程序时,确定你在PATH中包括了ACE_ROOT\bin。

      在下面的步骤我仅仅是在用户的环境变量path中加入了D:\ACE_wrappers\lib。

     打开Microsoft Visual Studio 2005并加载ACE的项目文件后,依次选择Tools -> Options -> Projects and Solutions -> VC++ Directoris打开对话框,在右上方show directories for:下选择Include files包含路径D:\ACE_wrappers ; Library files包含路径D:\ACE_wrappers\lib  ; Source files包含路径D:\ACE_wrappers\ace  ;

     5. 如果你的系统平台是WinNT或2000,那么无需任何改动你就可以开始编译了。如果是Windows 9x/Me,你需要在D:\ACE_wrappers\ace\config.h中的#include语句之前增加:

         #define ACE_HAS_WINNT4 0

     6. 如果你想要使用MSVC标准C++头(iostream、cstdio……),在D:\ACE_wrappers\ace\config.h中的#include语句之前增加:

           #define ACE_HAS_STANDARD_CPP_LIBRARY 1

     7. 要与MFC一起使用ACE,再增加下面的定义:

        #define ACE_HAS_MFC 1

      注意如果你想要通过CWinThread派生新线程,一定要设置THR_USE_AFX。在缺省情况下,所有的ACE项目都使用DLL版本的MSVC运行时库。尽管如此,你仍然可以选择使用static(LIB)版本的ACE库(在项目属性中进行)。如果你想要将MFC作为静态库链接进ACE,你可以在config.h文件中定义ACE_USES_STATIC_MFC。但如果你想要静态链接所有的东西(包括MSVC运行时库),你就需要自己修改ACE的项目文件。

     8. ACE的静态版本是通过定义ACE_AS_STATIC_LIBS来编译的。在链接静态ACE库的应用项目中也应该使用这个宏。你也可以在config.h文件中增加

         #define ACE_NO_INLINE

来取消函数内联并减小静态库(和你的可执行程序)的大小。

      我自己的config.h文件是这样的:

            #define ACE_HAS_STANDARD_CPP_LIBRARY 1  //使用标准C++库,可以使用STL
            #define ACE_NO_INLINE                                             //不使用内联函数,可以减小LIB和EXE的大小
            #define ACE_HAS_MFC 1                                            //使用MFC
            //#define ACE_AS_STATIC_LIBS                                //使用静态 LIB

           #include "config-win32.h"                                             //一定要放在最后

     9. ACE DLL和LIB的命名方案:

"Library/DLL名" + (是否为静态库 ? "s" : "") + (是否启用了Debugging ? "d" : "") + {".dll"|".lib"}

     10. 配置完毕后编译即可。选择dll版本,编译生成的dll文件在D:\ACE_wrappers\bin中,相应的lib文件在D:\ACE_wrappers\ace中。

ACE测试

      各测试程序在D:\ACE_wrappers\tests中。在其中也有一个工作空间文件可用来编译所有的测试程序(tests_vc8.sln)。
       一旦你编译了所有测试程序(可使用批编译),你可以运行tests目录中的perl脚本run_test.pl或批处理文件run_tests.bat来进行所有测试。

另转贴:

安装环境:


操作系统:Windows XP 专业版
编译环境:VS2005中文版
ACE版本:ACE-5.5.1
安装过程:
下载安装包。
Ace的安装文件可以在http://download.dre.vanderbilt.edu/中下载到,由于我是在windows环境下安装并且不需要TAO等其它库,便下载了ACE-5.5.1.zip。
下载完成后将其解压。我的解压路径为D:\Develop\ACE_wrappers。
设置环境变量
在操作系统添加一个名为ACE_ROOT的用户环境变量,值为刚才ace的解压路径D:\Develop\ACE_wrappers。
添加用户的Path环境变量,值为%ACE_ROOT%\lib,这样才能保证系统能找到ace生成的动态连接库。
设置VS2005的C++开发项目信息,依次打开菜单 工具-选项-项目和解决方案-VC++目录 ,在右侧目录列表中选择"包含目录",添加$(ACE_ROOT),在右侧目录列表中选择"库文件",添加$(ACE_ROOT)\lib。
编译ACE
在ACE_ROOT\ace目录创建一个名为 config.h的文件。编辑文件并加入以下内容
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"
其中第一行是因为我想用标准C++跨平台,第二行则是必须要的,表明当前是在win32的环境下进行ace的项目。
进入ACE_ROOT\ace目录中,能发现ACE现在已经带VS2005的编译项目了,直接打开ace_vc8.sln,直接生成ACE项目的Debug版和Release版,编译过程还比较快,大概就几分钟的样子。编译链接完成后,在ACE_ROOT\lib中一共生成了四个文件,分别是"ACE.dll","ACE.lib", "ACEd.dll","ACEd.lib",其中带"d"表示的是Debug版本。
检验 ACE
打开VS2005,建立一个空项目,将ACE程序员手册中的第一个程序拷入其中。
配置属性->链接器->常规->附加依赖项,添入ACEd.lib。
编译,如果不出意外的话就能看到你的ace版的" hello world"啦。
注意:
ACE项目的字符集设置是"未设置",而VS2005的c++项目默认字符集是"使用 Unicode 字符集",如果用到了ACE链接库时需要将字符集改为"未设置"(在"项目属性->配置属性->项目默认值->字符集"中配置),否则可能出现链接错误。

至此,ACE的安装工作便算完成,希望这篇文章对大家安装ACE有点帮助。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

支持unicode的ACE编译。

编译前在config.h中多添加如下两行,并且将项目默认字符集改为"使用 Unicode 字符集"。

#define ACE_USE_WCHAR
#define ACE_HAS_WCHAR

注意:

在windows平台下,如果没有定义如上两个宏, ACE会自动将 main 函数重定义, 并主动替你把 ACE::init() 和 ACE::fini() 调用好。添加这两个宏后,需要在main函数中手动调用。

main 函数重定义这一行为不能保证在所有平台和环境下都正常运作(如使用MFC时),其实不管如何,不妨在 main 函数的开头和结尾分别再调用一次 ACE::init() 和 ACE::fini()。 ACE::init() 和 ACE::fini() 里面都有嵌套层次计数机制,因此只要它们能够保证成对出现, 并且不出现交叉嵌套, 多调用一遍并不会出现任何问题



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kybd2006/archive/2007/08/21/1753333.aspx

你可能感兴趣的:(C++,windows,XP,mfc,vc++)