zoukankan      html  css  js  c++  java
  • 是否忘记了向源中添加“#include "StdAfx.h"”?

    错误分析

    此错误发生的原因是编译器在寻找预编译指示头文件(默认#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”

  • 相关阅读:
    《WCF全面解析》-上册 1-3章 读书笔记
    git上传本地Intellij idea 项目到码云的git仓库中
    Node.js安装及环境配置之Windows篇
    让IntelliJ IDEA支持创建*.vue文件及打开*.vue文件
    maven命令mvn package指定jar包名称
    spring 时间格式化注解@DateTimeFormat和 @JsonFormat
    事务及事务隔离级别
    @RequestBody的使用
    接口jdk1.8与jdk1.9新特性
    Spring AOP无法拦截内部方法调用-- expose-proxy="true"用法
  • 原文地址:https://www.cnblogs.com/chay/p/11463148.html
Copyright © 2011-2022 走看看