找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 6842|回复: 2

ACE VC9.0安装心得

[复制链接]
发表于 2009-7-24 14:32:50 | 显示全部楼层 |阅读模式
VC9+ACE5.7 安装心得
1.
将ACE-5.7.zip解压到所需的安装目录,此处以E:\为例,解压后形成ACE_wrappers文件夹,因此ACE将会存在于ACE_wrappers\ace目录中。

2.
在E:\ACE_wrappers\ace目录中创建一个头文件,命名为config.h,其内容为:
#include "ace/config-win32.h"(必选项)
#define ACE_HAS_STANDARD_CPP_LIBRARY 1 (MSVC自带的标准C++头文件)
#define ACE_HAS_MFC 1(与MFC一起使用)
#define ACE_NO_INLINE(取消函数内联从而减小静态库和运行码的大小)
#define ACE_AS_STATIC_LIBS(构建ACE的静态版本)
#define ACE_HAS_WINNT4 0(在Windows 9x/me上构建所需,在ACE中移掉一些WinNT/Win2K中特有的代码)
以上只需要添加前两项就可以了。

3.
现在使用VC9.0打开E:\ ACE_wrappers下的ace.sln,打开解决方案后,可以像你做其它开发一样,选择重新生成解决方案,接下来我们就不必再做任何操作。经过漫长的等待最后我们会在lib目录下生成ace所需要使用的lib,dll等文件。生成的dll文件要放在bin文件夹中,否则在运行程序的时候碰到寻找ace.dll或者aced.dll的问题。同样打开ace_static.sln编译生成ACEs.lib、 ACEsd.lib、ACE_RMCasts.lib、ACE_RMCastsd.lib、TMCasts.lib、TMCastsd.lib。至此在WindowsBuild ACE的过程就基本结束了。

4.
配置ACE环境。打开VC++6.0,选择Tools->Options->Directories 加入以下内容:
1) Executable FileE:\ACE_wrappers\bin
2) Include File:
E:\ACE_wrappers
3) Library Files:
E:\ACE_wrappers\lib
4) Source Files:E:\ACE_wrappers

5.
在系统环境的变量 path中加入E:\ACE_wrappers\bin,否则在运行程序的时候碰到寻找ace.dll或者aced.dll的问题。

6.
在编译程序时,在项目属性->C\C++/处理器/预处理器定义中加WIN32。否则会出现“Please
define
WIN32
in
your
project
settings.
”的错误。把外部 lib文件在项目属性里面引入,打开 项目属性->链接器->命令行->附加选项 加入了 .lib 再编译,pass 。否则会出现“无法解析的外部符号”的错误。

7.
编译时会遇到“error:
“ACE_ERROR_RETURN”: 找不到标识符”的问题,这时需加入头文件,根据提示去ace文件夹下搜索相关头文件即可。
8.
LINK时报错:无法打开文件“E;\ACE_wrappers\lib\ACE.lib”,配置属性->链接器->常规->附加依赖项里加上ACE.lib所在的目录输入—>添加附加项添加ACE.Lib

评分

参与人数 1威望 +10 收起 理由
wishel + 10 精品文章

查看全部评分

发表于 2010-2-7 09:22:31 | 显示全部楼层

回复 #1 04053093 的帖子

用VS2008编译ACE_wrappers_vc9_Static.sln生成的静态库,在工程属性中,添加了头文件所在文件夹为D:\ACE_wrappers,静态库文件夹为D:\ACE_wrappers\lib,并把那两个静态库文件添加为依敕库文件,然后在VS2008中测式以下程序,
#include "ace/OS.h"
#include "ace/Log_Msg.h"
int main (int argc, char *argv[])
{
          ACE_DEBUG((LM_DEBUG,"Hello, ACE! "));
          ACE_OS::exit(1);
          return 0;
}
编译不过去,希望您能指出我的错误,谢谢了!
发表于 2010-7-13 21:33:29 | 显示全部楼层
int main (int argc, char *argv[])

应该是这行,使用ACE的话,请使用

int ACE_TMAIN(int argc, ACE_TCHAR *argv[])

具体的错误还是要看你的编译错误。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-3-29 13:23 , Processed in 0.025521 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表