windows搭建ACE开发环境遇到的问题

来源:互联网 发布:西安seo缑阳建 编辑:程序博客网 时间:2024/04/30 01:11

 

最近在windows 7 + vs 2008下搭建ACE的环境,遇到了若干问题,下面将其列出并给出相应的解决办法(当然主要是google了)。

主要是参考文章:ACE 安装指南及示例 的步骤进行。

 

在编译ACE工程文件过程中,碰到的第一个问题是类似下面的错误:

 

1>e:/vrmarinemy/scene3d.h(91) : error C2146: 语法错误 : 缺少“;”(在标识符“m_TreeManager”的前面)
1>e:/vrmarinemy/scene3d.h(91) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:/vrmarinemy/scene3d.h(91) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

 

在网上查了下,问题搞了好久才解决,开始还怀疑过是操作系统的问题(我用的是windows 7),或者是工具vs 2008的不同的问题,甚至怀疑过是ACE源文件中本身有问题。

最后在检查的时候发现:安装过程中有一步是,新建一个config.h文件。加入一句话#include "config-win32.h"。

而源代码ACE_wrappers/ace目录下已经有这样的一个文件config.h,所以我之前就想当然的在该文件中加了#include "config-win32.h";但是事实上这就是导致出现第一个问题的原因。我把该目录下本来就有的config.h删掉,重新建了这个文件,并加入包含的头文件信息,第一个问题就解决了。

 

 

碰到的第二个问题就是

在编译ACE源文件过程中出现错误:error C2471: 无法更新程序数据库

在网上搜索得到的解决方法是参考的这篇文章: 

http://blog.csdn.net/zhuangshn/archive/2010/04/23/5520324.aspx

vs2005下的程序移到vs2008中,出现error C2471: 无法更新程序数据库“d:/Work/ Project/FBReader/debug/vc90.pdb”

   fatal error C1083: 无法打开程序数据库文件:“d:/Work/ Project/FBReader/debug/vc90.pdb”: No such file or directory ..

 

解决方案:修改项目属性 右击项目 --> "属性”

1. “C/C++” --> "常规” -->”调试信息格式” 设置为 “C7 兼容(/Z7)”

2. “C/C++” --> "代码生成” -->”启用字符串池” 设置为 “是(/GF)”

3. “链接器” --> "调试” -->”生成调试信息” 设置为 “是(/DEBUG)”

 

编译完成之后就是编写自己的工程项目以便测试生成的ACE库文件是否可以供自己的应用程序使用了,

新建一个工程ACETest1,源代码如下:

 

在编译该项目的时候,要配置

 

右键该项目-属性, 配置属性->链接器->常规->附加库目录"C:/1 work/ALLOCS/source code/ACE_wrappers/ACE_wrappers/lib"

    配置属性->链接器->输入->附加依赖项,添入ACEd.lib

 

 

在编译ACE库 过程中还有个问题要注意的是(可能使用的是window 7系统+vs2008的缘故吧,记得搜索到过好像是系统bug):右键ACE项目-属性, 配置属性->链接器->常规->启用增量链接,设置为否(/INCREMENTAL:NO)。注意:只是在编译ACE等库项目的时候需要这么设置,而自己建立的工程项目不需要设置。

否则会在链接的过程中报错:

 

 

否则可能出现类似下面的错误:

LINK   :   没有找到   C:/Documents   and   Settings/ztne/My   Documents/Visual   Studio   2005/Projects/DirectXStudy/Debug/Draw.dll   或上一个增量链接没有生成它;正在执行完全链接 

 

还有就是在生成该项目之前还要设置项目依赖项,右键 ACETest1- 项目依赖项,项目ACETest1 依赖于项目 ACE。

 

右键该项目,并完成项目的生成。

 

但是在运行该项目的时候,又出现了:无法启动此程序,因为计算机中丢失ACEd.dll。尝试重新安装此程序以解决此问题。

 

当时没有找到解决的方法。但是知道是由于环境变量设置的原因,把生成的ACETest1.exe拷贝到生成ACEd.dll的目录下,运行没有问题。

自己环境变量设置也没有问题啊,

1.在操作系统添加一个名为ACE_ROOT的系统环境变量,值为刚才ace的源文件路径C:/1 work/ALLOCS/source code/ACE_wrappers/ACE_wrappers

2.添加系统Path环境变量,值为%ACE_ROOT%/lib,这样才能保证系统能找到ace生成的动态连接库。

 

但是编译生成后总出现上述的错误。

 

第二天重启后发现程序编译生成并运行的时候没有问题了,原来我是在打开vs2008之后,才设置的系统环境变量,只有重启vs2008,设置的系统环境变量才会生效。

 

至此,终于完成了ACE的环境搭建。