是否忘记了向源中添加 stdafx.h

52 篇文章 0 订阅

错误分析

此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "stdafx.h")时,文件未预期结束。没有找到预编译指示信息的头文件"stdafx.h"

解决方式

方法一

  1. 在解决方案资源管理器中,右击相应的.cpp文件,点击“属性”
  2. 在左侧配置属性中,点开“C/C++”,单击“预编译头”
  3. 更改右侧第一行的“创建/使用预编译头”,把选项从“使用预编译头(/Yu)”改成“不使用预编译头”

方法二(不推荐)

1)在解决方案右击工程,点击属性
2)在配置属性 -> c/c++ -> 预编译头 中 将 “使用预编译头(/YU)” 改为 “不适用预编译头”,这种做法会使每次编译过程非常缓慢

方法三

直接在.cpp头文件上include stdafx.h。但是这种修改会破坏代码的标准性。

概念

预编译

就是编译器首先编译某个文件(称为预编译头文件),然后将这个编译结果保存起来,之后如果有其他源文件include了这个“预编译头文件”的时候,则自动从这个编译结果提取需要的信息进行编译。

预编译结果文件(Precompiled header file)

就是那个用来保存已经编译了的符号信息的文件(.PCH作为后缀)

生成预编译结果文件(Create Precompiled header file)

我们说源文件A通过文件B“生成预编译结果文件”是指编译A的时候将其中编译B的编译结果保存成预编译结果文件。一般使用向导的话,A文件就是“stdafx.cpp”,B文件是“stdafx.h”。stdafx.cpp中就一行语句:#include “stdafx.h”

使用预编译头(Using precompiled header)

我们说某个源文件(a.cpp)通过“stdafx.h”来使用预编译结果是指编译a.cpp的时候,如果a.cpp第一行include语句是#include “stdafx.h”的话,那么直接取预编译结果文件的结果,不再重新编译”stdafx.h”

Visual Studio,`stdafx.h`是一个预编译头文件,它用于存储编译器编译的预编译结果,以加速项目其他文件的编译过程。通常情况下,使用`stdafx.h`可以减少编译时间,因为它可以避免每次编译时重新编译相同的头文件。以下是添加`stdafx.h`文件的一般步骤: 1. 创建预编译头文件: - 打开你的项目。 - 右键点击项目的“Header Files”或相应的文件夹。 - 选择“添加” -> “新建项”。 - 在项目创建一个新的头文件,命名为`stdafx.h`。 2. 创建预编译头实现文件: - 同样右键点击“Header Files”或相应的文件夹。 - 选择“添加” -> “新建项”。 - 创建一个新的源文件,命名为`stdafx.cpp`。 3. 编写预编译头文件: - 在`stdafx.h`文件,通常包含项目常用的头文件。例如: ```cpp // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently #pragma once // TODO: reference additional headers your program requires here ``` 4. 编写预编译头实现文件: - 在`stdafx.cpp`文件,包含`stdafx.h`文件,并且可以使用`#include`指令包含其他经常使用的头文件: ```cpp // stdafx.cpp : source file that includes just the standard includes // YourProject.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ``` 5. 设置项目属性以便使用预编译头: - 在解决方案资源管理器,右键点击项目,选择“属性”。 - 在“C/C++”选项卡下,找到“预编译头文件”设置。 - 将“创建/使用预编译头”设置为“使用预编译头(/Yu)”。 - 在“预编译头文件”,输入“stdafx.h”。 6. 应用更改并重新构建项目: - 点击“确定”保存设置。 - 清理并重新构建你的项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值