搭建VC6下的ACE开发环境
2008-01-30 12:38
267 查看
发信人: ouyang (金陵书生~算法*网络*C++), 信区: CPP
标 题: 〔原创〕搭建VC6下的ACE开发环境
发信站: 紫金飞鸿 (2006年01月30日20:10:10 星期一), 站内信件
搭建VC6下的ACE开发环境
0. 本文简述
1. 源码获取
2. 源码安装
3. 系统设置
4. VC环境设置
5. 常见问题
0. 本文简述
本文简要介绍作者搭建VC6+SP6下的ACE5.4开发环境的基本步骤,主要是方便
以后查阅,任何错误/建议/指导请联系我。
1. 源码获取
您可以从ACE(Adaptive Communication Environment)的创始人Douglas C. Schmidt
的主页上获取:http://www.cs.wustl.edu/~schmidt/ACE.html点击Obtain ACE 然后选
择您需要的最新版本的源代码(ACE/ACE+TAO,最新ACE5.4),要下载旧的版本可以去:
http://deuce.doc.wustl.edu/old_distribution/
2. 源码安装
a.解压缩到特定目录如D:/ACE/(本文后面用$(ACE_ROOT)引述,凡是用到了$(ACE_ROO
T的地方请自行用您在这里的ACE所在目录代替)).
b.在$(ACE_ROOT)/ace/下新建一个文件config.h,其内容如下:
#define ACE_HAS_STARDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"
其实也可以把config-win32.h改名成config.h,但是不推荐这样。
c.用VC6打开$(ACE_ROOT)/ace.dsw,选择〔build〕->〔Batch build...〕->〔Build〕
等编译完毕后(大概需要十来分钟或更多的时间)检查$(ACE_ROOT)/lib/下是否有
ACE.dll,ACEd.dll等文件。
3. 系统设置
右键点击〔我的电脑〕->〔属性〕->〔高级〕->〔环境变量〕
在系统变量中的PATH路径中添加$(ACE_ROOT)/lib
在VC中运行程序时提示说找不到ACE.dll/ACEd.dll时常常是这步没做。
注:1. 有些资料在这步要求新建ACE_ROOT路径为$(ACE_ROOT),其实搭建VC6下的ACE
开发环境时是不需要设置ACE_ROOT的。
2. 有些资料是在VC的工程设置〔Project〕->〔Setting...〕中的
〔Directories〕的Excutable files中加入$(ACE_ROOT)。然后,这样只能在通过VC
进行编译/链接/运行时可行,不通过VC而直接运行程序会报错说找不到ACEd.dll
(Debug模式)/ACE.dll(Release模式)。
4. VC环境设置
对于使用了ACE的项目,要求对其对其工程设置(〔Project〕->〔Setting...〕)进
行如下修改:
a. 〔C/C++〕: Category选择Code Generation,把Use run-time library设置为
Debug MultiThreaded
b. 〔C/C++〕: Category选择Preprocessor,在Addtional include directories中
添加$(ACE_ROOT).
c. 〔Link〕: Category选择Input,在Addtional library path中加入
$(ACE_ROOT)/lib
d. 在用到了ACE头文件的程序前面添加如下代码:
#ifdef _DEBUG
#pragma comment(lib,"ACEd.lib")
#else
#pragma comment(lib,"ACE.lib")
#endif
注:1). 有些资料(包括The ACE Programmer's Guide) 不是使用d步骤而是在debug
模式下进行编译前在c步骤中在object/library modules中添加aced.lib,在切换到
用release模式进行编译时修改为ace.lib.d步骤中的代码相当于实现了该功能。
2. 如果确定自己的所有项目都用同一个版本的ACE,也可以把上述对项目设置
修改的b和c步骤改为在〔Tools〕->〔Options〕->〔Directories〕中作相应修改。
5. 常见问题
1. 关于2.b步骤中config.h文件的一些说明:
a.如果你在Windows NT或者Windows 2k上构建ACE,你可以马上开始构造而
不需任何改变,如果你在Windows 9x/me上构建,那么你必须在
$(ACE_ROOT)/ace/config.h.的#include块之前添加一行:
#define ACE_HAS_WINNT4 0
这将在ACE中移掉一些WinNT/Win2K中特有的代码。
b. 如果你希望使用MSVC自带的标准C++头文件(C++ Standard Draft 2种定义
的iostream,cstdio…..),则应该在$(ACE_ROOT)/ace/config.h.的#include
块之前添加一行:
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
c. 如果需要和MFC一起使用,增加如下定义到你的config.h文件中,注意,如
果你想使用spawn一个新的线程,则必须保证使用THR_USE_AFX标志来spawn
线程。
#define ACE_HAS_MFC 1
缺省的,ACE工程使用MSVC运行时的动态DLL版本,你也可以选择使用ACE的不
关心运行时库的静态(LIB)版本。我们选择仅与动态运行时库连接的原因在
于基本上所有的NT机器上都会安装这些库,而我们则可以因此而减小代码的
大小。如果你希望ACE与MFC的静态版本连接,则可以在config.h中定义
ACE_USES_STATIC_MFC。然而,如果你希望静态的连接所有的库(包括MSVC运
行时库),就需要自己修改工程文件了。
d. 如果要构建ACE的静态版本,则需要在config.h中定义ACE_AS_STATIC_LIBS,
此宏在那些希望使用ACE的静态版本的应用工程中也必须定义。
作为一个可选项,你可以在$(ACE_ROOT)/ace/config.h的#include块前添加
一行:
#define ACE_NO_INLINE
来取消函数内联从而减小静态库(和你的运行码)的大小
标 题: 〔原创〕搭建VC6下的ACE开发环境
发信站: 紫金飞鸿 (2006年01月30日20:10:10 星期一), 站内信件
搭建VC6下的ACE开发环境
0. 本文简述
1. 源码获取
2. 源码安装
3. 系统设置
4. VC环境设置
5. 常见问题
0. 本文简述
本文简要介绍作者搭建VC6+SP6下的ACE5.4开发环境的基本步骤,主要是方便
以后查阅,任何错误/建议/指导请联系我。
1. 源码获取
您可以从ACE(Adaptive Communication Environment)的创始人Douglas C. Schmidt
的主页上获取:http://www.cs.wustl.edu/~schmidt/ACE.html点击Obtain ACE 然后选
择您需要的最新版本的源代码(ACE/ACE+TAO,最新ACE5.4),要下载旧的版本可以去:
http://deuce.doc.wustl.edu/old_distribution/
2. 源码安装
a.解压缩到特定目录如D:/ACE/(本文后面用$(ACE_ROOT)引述,凡是用到了$(ACE_ROO
T的地方请自行用您在这里的ACE所在目录代替)).
b.在$(ACE_ROOT)/ace/下新建一个文件config.h,其内容如下:
#define ACE_HAS_STARDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"
其实也可以把config-win32.h改名成config.h,但是不推荐这样。
c.用VC6打开$(ACE_ROOT)/ace.dsw,选择〔build〕->〔Batch build...〕->〔Build〕
等编译完毕后(大概需要十来分钟或更多的时间)检查$(ACE_ROOT)/lib/下是否有
ACE.dll,ACEd.dll等文件。
3. 系统设置
右键点击〔我的电脑〕->〔属性〕->〔高级〕->〔环境变量〕
在系统变量中的PATH路径中添加$(ACE_ROOT)/lib
在VC中运行程序时提示说找不到ACE.dll/ACEd.dll时常常是这步没做。
注:1. 有些资料在这步要求新建ACE_ROOT路径为$(ACE_ROOT),其实搭建VC6下的ACE
开发环境时是不需要设置ACE_ROOT的。
2. 有些资料是在VC的工程设置〔Project〕->〔Setting...〕中的
〔Directories〕的Excutable files中加入$(ACE_ROOT)。然后,这样只能在通过VC
进行编译/链接/运行时可行,不通过VC而直接运行程序会报错说找不到ACEd.dll
(Debug模式)/ACE.dll(Release模式)。
4. VC环境设置
对于使用了ACE的项目,要求对其对其工程设置(〔Project〕->〔Setting...〕)进
行如下修改:
a. 〔C/C++〕: Category选择Code Generation,把Use run-time library设置为
Debug MultiThreaded
b. 〔C/C++〕: Category选择Preprocessor,在Addtional include directories中
添加$(ACE_ROOT).
c. 〔Link〕: Category选择Input,在Addtional library path中加入
$(ACE_ROOT)/lib
d. 在用到了ACE头文件的程序前面添加如下代码:
#ifdef _DEBUG
#pragma comment(lib,"ACEd.lib")
#else
#pragma comment(lib,"ACE.lib")
#endif
注:1). 有些资料(包括The ACE Programmer's Guide) 不是使用d步骤而是在debug
模式下进行编译前在c步骤中在object/library modules中添加aced.lib,在切换到
用release模式进行编译时修改为ace.lib.d步骤中的代码相当于实现了该功能。
2. 如果确定自己的所有项目都用同一个版本的ACE,也可以把上述对项目设置
修改的b和c步骤改为在〔Tools〕->〔Options〕->〔Directories〕中作相应修改。
5. 常见问题
1. 关于2.b步骤中config.h文件的一些说明:
a.如果你在Windows NT或者Windows 2k上构建ACE,你可以马上开始构造而
不需任何改变,如果你在Windows 9x/me上构建,那么你必须在
$(ACE_ROOT)/ace/config.h.的#include块之前添加一行:
#define ACE_HAS_WINNT4 0
这将在ACE中移掉一些WinNT/Win2K中特有的代码。
b. 如果你希望使用MSVC自带的标准C++头文件(C++ Standard Draft 2种定义
的iostream,cstdio…..),则应该在$(ACE_ROOT)/ace/config.h.的#include
块之前添加一行:
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
c. 如果需要和MFC一起使用,增加如下定义到你的config.h文件中,注意,如
果你想使用spawn一个新的线程,则必须保证使用THR_USE_AFX标志来spawn
线程。
#define ACE_HAS_MFC 1
缺省的,ACE工程使用MSVC运行时的动态DLL版本,你也可以选择使用ACE的不
关心运行时库的静态(LIB)版本。我们选择仅与动态运行时库连接的原因在
于基本上所有的NT机器上都会安装这些库,而我们则可以因此而减小代码的
大小。如果你希望ACE与MFC的静态版本连接,则可以在config.h中定义
ACE_USES_STATIC_MFC。然而,如果你希望静态的连接所有的库(包括MSVC运
行时库),就需要自己修改工程文件了。
d. 如果要构建ACE的静态版本,则需要在config.h中定义ACE_AS_STATIC_LIBS,
此宏在那些希望使用ACE的静态版本的应用工程中也必须定义。
作为一个可选项,你可以在$(ACE_ROOT)/ace/config.h的#include块前添加
一行:
#define ACE_NO_INLINE
来取消函数内联从而减小静态库(和你的运行码)的大小
相关文章推荐
- 搭建ACE-5.7.4+VS2008开发环境
- 搭建ACE及TAO开发环境的快速方法 (Windows篇)
- 在vc6上搭建sdl的开发环境
- ACE开发环境搭建与源码深度剖析
- 搭建ACE及TAO开发环境的快速方法(Linux+Docker篇)
- 搭建ACE-5.7.4+VS2008开发环境
- ACE6.3.1 vs2010搭建ACE开发环境
- window下搭建qt开发环境编译、引用ace
- 阿里云ACE下的PHP开发环境搭建
- window下搭建qt开发环境编译、引用ace
- ACE开发环境搭建
- centos上搭建ACE开发环境
- 搭建ACE-5.7.4+VS2008开发环境
- 搭建ACE-5.7.4+VS2008开发环境
- ACE开发环境搭建
- windows搭建ACE开发环境遇到的问题
- WIN7 VS2008 ACE 开发环境搭建
- 在vc6上搭建sdl的开发环境
- Windows平台搭建Kafka源代码开发环境(Eclipse版本)
- Centos6 内核开发环境搭建