经典的编译错误

: 编译时总出这个错误为什么? : fatal error C1010: unexpected end of file while looking for precompiled : header directive : 我查了msdn好像不是他说的错误原因.

这是预编译头文件没有包括进来, 有两种解决办法, 一是把所有的源程序文件前面都加上#include <stdafx.h> 第二种方法是,如果你不原意改变源文件就在菜单上选择 Project->Settings... 选择相应的配置(如果你是用Debug方式编译,就选Debug方式,如果Release方式就用 Release) 然后把下面的源文件树打开,选择没有加上面那个include语句的文件,在右边把有关 precompiled的项目取消或选成none precompiled之类的选项就成了.

以下选自jjhou的网站

> 2. 使用 AppWizard Project file 中想要加入 .cpp file
> 在 Compiling 過程會被要求請加入 "stdafx.h"
> 請問可以避免嗎?

你是問「一個 project 之中可否不要 stdafx.h」嗎?答案是可以,
但你的日子會從此更辛勞些。

隨便看一個由 AppWizard 產生的 project,其 stdafx.h 內是一些
必要的 include files(例如 afxwin.h)。對應於 stdafx.h 則有
一個 stdafx.cpp,其內只是 #include "stdafx.h"。這有什麼用意?

用意是,讓 stdafx.cpp 編譯出一個 stdafx.obj,成為
所謂的 "pre-compile-header"(需搭配特殊 compile option。
AppWizard 會為我們的 project 自動設定這個特殊的 option),
可大幅降低第二次(以降)的編譯所需時間(因為標準 MFC headers
不需再編譯一次)。

往後,你每使用 ClassWizard 協助開發此程式,ClassWizard 便有
可能在 stdafx.h 中增加新的 include files。例如,你若選用
MFC template classes,stdafx.h 中便會增加 #include <afxtempl.h>。

如果你不要 afxstd.h,意味你得自己 take care 這些事情。

--- the end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值