vs编译报错C1020: 意外的 #endif

15 篇文章 1 订阅
"本文详细阐述了在Visual Studio项目中遇到C1020错误的常见原因,即预编译头问题。提供了解决方案,包括在cpp文件顶部添加#include "stdafx.h"的正确位置,并介绍了如何在不需要预编译头时进行设置。"
摘要由CSDN通过智能技术生成

      生成vs项目解决方案时出现了错误如下:
C1020: 意外的 #endif
图1

普遍解决方案

      各种百度,给出的解决方案都是在.cpp文件第一条语句加:#include “stdafx.h”,
      报错写法:

#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include "stdafx.h"

      正确写法:

#include "stdafx.h"//放在第一条语句
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"

      此种解决方案的原因:代码使用了预编译头,编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。所以在使用预编译头的情况下,应将 #include "stdafx.h"放在第一条语句,以防编译会跳过其他代码。

本文解决方案

      上述解决方案适用于Windows平台且需使用预编译头或者对是否使用预编译头没有要求的情况。当觉得预编译头比较麻烦,用不用预编译头都可或者要将项目从Windows移植到Linux平台时(#include "stdafx.h"在linux下出错),可以设置不用预编译头

      设置不用预编译头方法:

  1. 右键相应的.cpp文件-属性
    图2
  2. 找到“c/c++”-预编译头-使用
    图3
          设置好后,再编译项目即可。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值