VC编程-预编译头文件(precompiled header)

本文介绍了在VC编程中遇到预编译头文件错误的问题及其解决方法。当编译C文件时,若报错"fatal error C1010: unexpected end of file while looking for precompiled header directive",解决方案包括:1) 在C文件开头添加#include "stdafx.h";2) 设置工程不使用预编译头;3) 确保类或结构体末尾有分号。预编译头文件用于加速编译过程,通过#include "stdafx.h"引用。
摘要由CSDN通过智能技术生成

预编译头文件(precompiled header)

 

今天在写程序的时候,突然发现要测试的代码是用c写的,还是用gcc编译的,可是我已经建立了测试的相关环境,没办法,只能一步步的改了,将相关的头文件、结构和变量移植以后,编译了一下(只编译了C文件),竟然出错,出错信息为:fatal error C1010: unexpected end of file while looking for precompiled header directive

然后无论怎么改代码都是这一句出错信息,最后改成了一个最简单的空函数,仍然不行,改成cpp文件,然后前面加上#include "stdafx.h",编译通过,再改成c文件,还是出错,然后郁闷了半天,后来想到是编译器问题,改了半天设置也没搞定,最后没办法只好去网上求助了,输出precompiled header directive,想不到网上那么多的结果,看了几篇,轻松搞定,真后悔没有早点在网上搜索,浪费了不少时间。。

 

解决方法:

1、如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的 Settings,选择C/C++选项卡,从Category组合框中选中Precompiled Headers,选择Not Using Precompiled headers。确定。

2、在文件开头添加:

#include "stdafx.h"

对预编译头文件说明如下:  

 

所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。  

 

预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。  

 

编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include   "stdafx.h"前的代码都是预编译的,它跳过#include   "stdafx.   h"指令,使用projectname.pch编译这条指令之后的所有代码。  

 

因此,所有的CPP实现文件第一条语句都是:#include   "stdafx.h"。

 

-------------------------&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值