| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1670 人关注过本帖
标题:用VC++6.0编译的时候出现了错误,求大侠帮忙
只看楼主 加入收藏
xhxh1845
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
用VC++6.0编译的时候出现了错误,求大侠帮忙
// sum.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int main(int argc, char* argv[])
{
 float a,b,sum;
 cout<<"Please enter a:"<<endl;
 cin>>a;
 cout<<"Please enter b:"<<endl;
 cin>>b;
 sum=a+b;
 cout<<"The sum is:"<<sum<<endl;

 return 0;
}
编译这个的时候出现了
Compiling...
sum.cpp
c:\documents and settings\administrator\桌面\sum\sum.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/sum.pch': No such file or directory
Error executing cl.exe.

sum.obj - 1 error(s), 0 warning(s)
请问这该怎么解决?我鼓捣一天了,还是不懂
搜索更多相关主题的帖子: 编译 
2009-07-23 14:07
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:6 
是你的头文件错了吧,没有iostream.h怎么输入输出呀?
下面这样就能编译了
#include "iostream.h"
using namespace std;

int main(int argc, char* argv[])
{
float a,b,sum;
cout<<"Please enter a:"<<endl;
cin>>a;
cout<<"Please enter b:"<<endl;
cin>>b;
sum=a+b;
cout<<"The sum is:"<<sum<<endl;

return 0;
}

编程之路无止境!
可是小子才入门!
2009-07-23 14:13
xhxh1845
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-23
收藏
得分:0 
2L,不行啊
Compiling...
sum.cpp
c:\documents and settings\administrator\桌面\sum\sum.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/sum.pch': No such file or directory
Error executing cl.exe.

sum.obj - 1 error(s), 0 warning(s)
还是这样的
2009-07-23 18:00
xhxh1845
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-23
收藏
得分:0 
有人告诉我说是因为没有预编译文件,需要修改工程的配置,选择预编译头文件,具体该怎么做?
2009-07-23 18:15
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:0 
你生成项目的时候是选了预编译头文件的吧,我这边试了下也不行,选空项目就没问题
选了预编译的话,我这会出来"MSVCR80.DLL找不到"的错误.这是VS2005本身的问题。  

打开菜单“项目”->最下面一行“xxx的属性”->左侧"配置属性"->"清单工具"->输入和输出->在右侧的“嵌入清单”,把“是“改选为“否”。
编译就成功了。

编程之路无止境!
可是小子才入门!
2009-07-23 18:31
xhxh1845
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-23
收藏
得分:0 
5L你说的我没找到
我用的是英文版的VC++6.0
...我是不是太笨了
2009-07-23 19:34
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:0 
........
好人做到底..
按Alt+F7弹出属性列表,左侧有两个大的选项,选第二个就是"配置属性"
然后点开下拉列表,第5个选项就是"清单工具"
再点开下拉列表,选第二个就是"输入和输出"
在右侧有条目列出,第三个就是"嵌入清单",英文的话应该是把"YES"改成"NO"

这样再找不到,你就没救了....

编程之路无止境!
可是小子才入门!
2009-07-23 19:52
xhxh1845
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-23
收藏
得分:0 

.....还是没找到
你QQ多少?要不你加我,我的是184509938
2009-07-23 20:28
xhxh1845
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-23
收藏
得分:0 
....图片不让上,弄个附件发给你看

未命名.jpg (50.43 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2009-07-23 20:38
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:0 
不好意思,是我看错了,我用的是VS2005,原来LZ的是VC6.0的..汗!!

在网上搜集了一下,这个错误是预编译文件的设置造成的,有几种可以尝试的途径:
1)单独编译StdAfx.cpp
2)编译所有(即按Ctrl+F7)
3)在工程-设置-c++-最下面的工程选项里去掉××。pch文件
4)在工程-设置-c++-在分类里选择预编译头文件,选择自动使用预补偿页眉,或者选择不使用预补偿头

补充知识:

要想弄明白出现问题的原因还是先了解一下pch文件吧,参考一下资料:
预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码.

为什么需要预编译头文件?一言以蔽之:提高编译速度.一般地,编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里的所有东西(eg.Macro宏,Preprocessor预处理),而VC程序中,这些头文件中所包括的东西往往是非常大的,编译之将占很长的时间.但它们又不常被修改,是较稳定的,为单独的一个小文件而重新编译整个工程的所有文件导致编译效率下降,因此引入了.PCH文件.

如何使用预编译头文件以提高编译速度?要使用预编译头文件,必须指定一个头文件(.H),它包含我们不会经常修改的代码和其他的头文件,然后用这个头文件(.H)来生成一个预编译头文件(.PCH)VC默认的头文件就是StdAfx.h,因为头文件是不能编译的,所以我们还需要一个.CPP文件来作桥梁,VC默认的文件为StdAfx.cpp,这个文件里只有一句代码就是:#include "StdAfx.h".接下来要用它生成.PCH文件,涉及到几个重要的预编译指令:/Yu,/Yc,/Yx,/Fp.简单地说,/Yc是用来生成.PCH文件的编译开关.在Project->setting->C/C++的Category里的Precompiled Header,然后在左边的树形视图中选择用来编译生成.PCH文件的.CPP文件(默认即StdAfx.cpp)你就可以看到/Yc这个开关,它表示这个文件编译了以后是否生成.PCH文件(可能/Yc的c表示create)./Fp指令指定生成的.PCH文件的名字及路径(可能/Fp的p代表path)./Yu的u即use使用,工程中只要包括了.H文件的文件都会有这个/Yu指令.如果选择自动Automatic...的话则原来为/Yc的地方就换成了/Yx指令.如果选择自动,则每次编译时编译器会看以前有没有生成过.PCH文件,有则不现生成否则就再次编译产生.PCH文件.

注意:
A,实际上,由Appzard项目向导生成的默认的头文件及CPP文件StdAfx.h和StdAfx.cpp可以是任何名字的.原因很简单.但如果你要这样做就要记得修改相应的Project->setting...下的几个预编译指令(/Yc,/Yu,/Yx,/Fp)的参数.
B.在任何一个包括了将要预编译的头文件而使用了.PCH文件的工程文件的开头,一定必须要是在最开头,你要包含那个指定生成.PCH文件的.H文件(通过.CPP文件包括,默认为StdAfx.cpp),如果没包括将产生我最开头产生的错误.如果不是在最开头包括将产生让你意想不到的莫名其妙错误,如若不信,盍为试之?
C.预编译文件.PCH生成之很耗时间,而且生成之后它也很占磁盘空间,常在5-6M,注意项目完成之后及时清理无用的.PCH文件以节约磁盘空间.
D.如果丢了或删了.PCH文件而以后要再修改工程文件时,可将指定的/Yc的.CPP文件(默认为StdAfx.cpp)重新编译一次即可再次生成.PCH文件,不用傻傻的按F7或Rebuild All

编程之路无止境!
可是小子才入门!
2009-07-23 21:08
快速回复:用VC++6.0编译的时候出现了错误,求大侠帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024555 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved