milkyway的窝

最初想法的诞生地

 

vs2005的两个莫名编译错误

原本正常的程序,今天编译却报错。

先是fatal error C1083: Cannot open precompiled header file: 'Debug/<Project-Name>.pch': No such file or directory
网上的说法是:
因为该模块没有包括预编译头文件“stdafx.h”的缘故。
VC用一个stdafx.cpp包含头文件stdafx.h,然后在stdafx.h里包含大部分系统头文件,这
样编译时VC就通过编译stdafx.cpp把大部分系统头文件预编译进来了,在Debug目录下有
一个很大的文件*.pch,这里就存储了预编译信息。
根据这个原理,如果这个pch损坏了或被删除了,系统重新编译时就会抱怨“cannot open
precompiled header file debug/*.pch”。这时怎么解决这个问题呢,打开Project-》
Setting对话框选C++页,将Category下拉式列表框选中Precompiled Headers,最简单的
办法就是选中第一个选项“Not using....",这样就根本不用预编译头也不去寻找pch文件,
就不会出错了,但是这样做的后果是每次编译、连接都化更多的时间。
也可以选第二个选项”Automatic ...",然后在“Through header”力填上stdafx.h,这样
如果没有pch文件系统会自动生成一个pch,如果有的话就使用这个pch,这个选项是比较“
智能”的。
第三个选项是强行创建一个pch文件,第四个选项是直接使用pch文件。当然“Through
headers”里都填stdafx.h了。

我的解决办法是把Creat/Use Precompiled Headers该成 Not Using Precompiled Headers。

接着一个错误 fatal error C1902: Program database manager mismatch; please check your installation。

解决办法参考 http://narita1982.bokee.com/6212590.htmlhttp://blog.csdn.net/DL88250/archive/2006/12/02/1427181.aspx
将 \Program Files\Microsoft Visual Studio 8\Common7\IDE 下的mspdb80.dll、mspdbsrv.exe、mspdbcore.dll复制到\Program Files\Microsoft Visual Studio 8\VC\bin 下。但是发现原来的VC\bin 下已经有那两个dll了

posted on 2007-05-10 15:04 milkyway 阅读(3433) 评论(1)  编辑 收藏 引用 所属分类: vs2005

评论

# re: vs2005的两个莫名编译错误 2007-07-30 09:22 灰色星空

谢谢啦 这方法很好
能成功解决问题  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜