找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 11429|回复: 9

新人求教!关于ACE6.0在Windows下的安装

[复制链接]
发表于 2012-10-18 08:37:57 | 显示全部楼层 |阅读模式
我下了一个ACE60SRC,看了本站的帖子发现内容对不上,请问谁在windows下或者Linux下成功安装并编译过ACE60SRC,麻烦教一下,谢谢!在线等。
我用的环境是VS2010,打开%ACE_ROOT%\ACE_wrappers\ace下的ace_vc10.sln没有编译过去,在该目录下通过复制config.h.in为config.h,并且在文件末尾加入了三行内容

#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_MFC 1
#define ACE_USES_EXPLICIT_STD_NAMESPACE

编译时报错

1>  正在对“Debug\ACE_vc10\I386\ACE.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  ACE.cpp
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_ns_math.h(52): error C2039: “log2”: 不是“std”的成员
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_ns_math.h(52): error C3861: “log2”: 找不到标识符
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_include\os_inttypes.h(30): fatal error C1083: 无法打开包括文件:“inttypes.h”: No such file or directory
1>  ACE_crc32.cpp
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_ns_math.h(52): error C2039: “log2”: 不是“std”的成员
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_ns_math.h(52): error C3861: “log2”: 找不到标识符
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_include\os_inttypes.h(30): fatal error C1083: 无法打开包括文件:“inttypes.h”: No such file or directory

然后找了一下  inttypes.h的文件 好像是c++基本库的头文件,复制进相应include目录下,再编译错误倒是变了,但是又出现缺其它文件,然后把所有C++基本库的头文件都复制过去,还是编译不通过,觉得可能做法有些不对,现请教。
发表于 2012-10-18 09:02:24 | 显示全部楼层
搜索一下资料,有不少提示,看这贴:http://www.acejoy.com/forum.php?mod=viewthread&tid=295

    config.h的内容为
    #include "ace/config-win32.h"
 楼主| 发表于 2012-10-18 09:12:01 | 显示全部楼层
加上了这句 编译还是出错
正在对“Debug\ACE_vc10\I386\ACE.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  ACE.cpp
1>d:\workspace\c#\ace60src\ace_wrappers\ace\config-macros.h(159): warning C4005: “ACE_EXPORT_SINGLETON_DECLARATION”: 宏重定义
1>          d:\workspace\c#\ace60src\ace_wrappers\ace\config-win32-common.h(124) : 参见“ACE_EXPORT_SINGLETON_DECLARATION”的前一个定义
1>d:\workspace\c#\ace60src\ace_wrappers\ace\config-macros.h(160): warning C4005: “ACE_IMPORT_SINGLETON_DECLARATION”: 宏重定义
1>          d:\workspace\c#\ace60src\ace_wrappers\ace\config-win32-common.h(126) : 参见“ACE_IMPORT_SINGLETON_DECLARATION”的前一个定义
1>d:\workspace\c#\ace60src\ace_wrappers\ace\config-macros.h(161): warning C4005: “ACE_EXPORT_SINGLETON_DECLARE”: 宏重定义
1>          d:\workspace\c#\ace60src\ace_wrappers\ace\config-win32-common.h(125) : 参见“ACE_EXPORT_SINGLETON_DECLARE”的前一个定义
1>d:\workspace\c#\ace60src\ace_wrappers\ace\config-macros.h(162): warning C4005: “ACE_IMPORT_SINGLETON_DECLARE”: 宏重定义
1>          d:\workspace\c#\ace60src\ace_wrappers\ace\config-win32-common.h(127) : 参见“ACE_IMPORT_SINGLETON_DECLARE”的前一个定义
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_ns_math.h(52): error C2039: “log2”: 不是“std”的成员
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_ns_math.h(52): error C3861: “log2”: 找不到标识符
1>d:\workspace\c#\ace60src\ace_wrappers\ace\os_include\os_inttypes.h(30): fatal error C1083: 无法打开包括文件:“inttypes.h”: No such file or directory

config.h文件内容


#ifndef ACE_CONFIG_H
#define ACE_CONFIG_H

// ACE configuration header file

#include "ace/config-win32.h"

//这块是config.h.in里原来的内容-开始


/* Compiler/platform standard C++ auto_ptr implementation lacks reset() method
   */     
#undef ACE_AUTO_PTR_LACKS_RESET/* */
#undef __NO_INCLUDE_WARN__
#endif  /* ACE_CONFIG_H */
// Local Variables:
// mode:C++
// End://这块是config.h.in里原来的内容-结束

#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_MFC 1
#define ACE_USES_EXPLICIT_STD_NAMESPACE
 楼主| 发表于 2012-10-18 09:23:05 | 显示全部楼层
winston 发表于 2012-10-18 09:02
搜索一下资料,有不少提示,看这贴:http://www.acejoy.com/forum.php?mod=viewthread&tid=295

    config ...

谢谢winston的回复,帖子我看了一下,第三步不知道是  只有#include"ace/config-win32.h"  还是像本站里有个帖子说的,要复制config.h.in文件变为config.h然后再加。具体的帖子为 http://www.acejoy.com/forum.php?mod=viewthread&tid=370
 楼主| 发表于 2012-10-18 09:29:22 | 显示全部楼层
自己动手试了一下 正在编译   config.h  只写#include"ace/config-win32.h"    等结果ing
勤快一点总是好的
 楼主| 发表于 2012-10-18 09:35:24 | 显示全部楼层
编译成功,成功生成ACEd.lib,经试验config.h不应该复制config.h.in文件,有可能是我的情况和http://www.acejoy.com/forum.php?mod=viewthread&tid=370帖子里的情况不一致吧,谢谢斑竹winston,下一步准备生成支持MFC的库和ACE.lib库,还会继续发帖总结过程,希望对后来人有所帮助
发表于 2012-10-18 10:30:57 | 显示全部楼层
说明老帖内容有问题,跟软件对不上号了。
 楼主| 发表于 2012-10-18 10:52:23 | 显示全部楼层
config.h里加入
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_MFC 1

再次生成出现
ACE.lib   //release版本库
ACE_ETCL.lib
ACE_ETCL_Parser.lib
ACE_QoS.lib
ACE_Monitor_Control.lib
后面4个库目前不清楚做什么用的,还得看书啊,有知道的就劳驾了。
发表于 2012-10-18 11:20:52 | 显示全部楼层
后面的是其它的库,跟ACE主干功能关系不大,一般不用管。其实一般应用就编译ace目录里面的东西就行了,编译速度还快。
 楼主| 发表于 2012-10-18 14:03:17 | 显示全部楼层
刚在CSDN下了一个叫“ACETest”的别人做的程序,用基于ACE的,正好学习一下基本的用法,打开-编译-出错。。。
提示ace/OS.h不存在,搜索一下ACE的目录发现没有该文件,果断注释试了一下,编译过了。。
但是有问题,我并没有指定ACE的头文件目录和库文件目录,VS是怎么找的呢,运行还成功了,难道是通过环境变量ACE_ROOT/PATH?

程序链接:http://download.csdn.net/detail/liao15243443/2047994
没有下载分的朋友可以联系我,一起研究
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-11-21 19:28 , Processed in 0.017729 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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