预编译头文件 (precompiled header)

本文介绍了C++预编译头文件(.pch)的概念和作用,以及如何配置和使用。当启用预编译头功能时,可能会遇到“fatal error C1010”错误,解决办法是确保每个源文件开头包含预编译头文件“stdafx.h”。预编译头可以提高编译速度,但误用可能导致编译问题,例如在预编译头文件中包含经常变动的头文件或在其他头文件中直接包含预编译头。
摘要由CSDN通过智能技术生成

今天碰到了一个错误, "fatal error C1010: unexpected end of file while looking for precompiled header directive"。 研究了一下,结果如下。

1. 这是因为启用了预编译的功能,关闭这个功能可以解决这个问题,但很可能带来编译效率的降低。这个功能主要是通过把不经常改动的预编译成一个PCH文件,然后下次编译则可以直接使用来降低时间。

2. VS IDE里,默认情况下的预编译头文件是"stdafx.h" (afx是Application Framework Extension)的缩写,且默认这个功能是开启的。

3. 在所有的CPP文件开头都需要加上#include "stdafx.h" 这句话。stdafx名字可以修改,不是固定的。特别要注意的是,这句话之前的所有代码都会被跳过,所以一定要放在第一句。比如放成以下的,则会出错,因为第一句不会被编译。

#include <iostream>
#include "stdafx.h"

错误:
Error C2065 'cout': undeclared identifier

如果预编译头文件被正确使用时,它确实大大提高我们编程的效率(你工作中,有多少时间是在等编译完成?很多吧,这个时候一般都很无聊,无奈,浪费时间)。但是他太容易用错了. 下面是几种常见的错误用法.
1) 在预编译头文件里include自己的头文件(当然, 如果你的头文件不经常变化, 也可以)
原因:自己的头文件一般会经常变, 便利后导致预编译的东东重新编译, 降低了编译速度.
2) 在其他的头文件里也include 预编译头文件
假设你的其他头文件也include了预编译头文件, 如果别人引用你的这个头文件又没有设置成预编译头文件, 那引用你头文件的这个人就煎熬了.
原因:由于你用到的.h文件里include了预编译头文件,他在他本身的project里,vs能够判断的出他是预编译头,也能找的到需要的pch,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值