无法打开预编译头文件的解决方法及预编译头原理[ZZ]

C++工程编译链接错误汇总VisualStudio 适用情况: 1. 查看 工程属性--- VC++目录----执行目录---是否有 C:\Program Files (x86)\Windows Kits\8.1\bin\x86 (应该是执行的这个目录下的 rc.exe) 2. 查看 目录 C:\Program Files (x86)\Windows Kits下是否没有【8.1】,或者【8.1】下的文件夹是否不全(对比【8.0】... 阅读详情

FROM: http://blog.youkuaiyun.com/zhangting1987/archive/2008/07/15/2654131.aspx

 

1。用VC.NET编辑程序,按Ctrl+F7,出现下列错误:

fatal error C1083: 无法打开预编译头文件:“Debug/UGFace.pch”: No such file or  directory  

解决方法:修改:项目->属性->C/C++ ->预编译头->不使用预编译头 即可。

2。先打开一个以前做了一下的工程,编译通过,能运行。我就稍微修改了一下代码(只是修 改一个参数使写入INI文件的整数由0变为10),这时编译通不过了,提示头文件“stdafx.h”编译错误(具体错误提示忘记了),错误位置指向应用程序类的源文件的语句“#include "stdafx.h"”。不包含这个文件是不行的,左看右看没找出个原因来,甚至把代码改回原来的样子,还是不行。到网上一查,发现这么一段话:

 

学用Visual C++ 6.0的第一个例程就让我出了错.用向导生成第一个基于对话框的Project之后,我按照书([Visual C++面向对象与可视化程序设计(第二版)]清华大学出版社pp76)上的例子开始了我的第一个程序,当我按照书上的源程序一个字一个字地输进去之后,始终有一个错误:fatal error C1010: unexpected end of file while looking for precompiled header directive.找了无数次之后,我决定把向导生成的包括头文件的语句:include"StdAfx.h"保留(而这之前我是把它删掉了的,因为书上的例子没有这句.)咦,这下就对了.这是为什么呢?我百思不得其解.

    来到我的VC源代码目录,我注意到每个Project每个Project下面的DEBUG文件夹都特别大,而且一个扩展名为 .pch的文件占去了绝大部分,我删掉之好像对程序编译运行没有什么影响.于是抱着对.pch文件的好奇,我在网上搜到了我疑惑之处的解答.这就是VC++6.0给我们带来的:预编译头文件.预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只是它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码.

    为什么需要预编译头文件?

    一言以蔽之:提高编译速度.一般地,编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里的所有东西(eg.Macro宏,Preprocessor预处理),而VC程序中,这些头文件中所包括的东西往往是非常大的,编译之将占很长的时间.但它们又不常被修改,是较稳定的,为单独的一个小文件而重新编译整个工程的所有文件导致编译效率下降,因此引入了.PCH文件.

    如何使用预编译头文件以提高编译速度?

    要使用预编译头文件,必须指定一个头文件(.H),它包含我们不会经常修改的代码和其他的头文件,然后用这个头文件(.H)来生成一个预编译头文件(.PCH)VC默认的头文件就是StdAfx.h,因为头文件是不能编译的,所以我们还需要一个.CPP文件来作桥梁,VC默认的文件为StdAfx.cpp,这个文件里只有一句代码就是:#include "StdAfx.h".接下来要用它生成.PCH文件,涉及到几个重要的预编译指令:/Yu,/Yc,/Yx,/Fp.简单地说,/Yc是用来生成.PCH文件的编译开关.在Project->setting->C/C++的Category里的Precompiled Header,然后在左边的树形视图中选择用来编译生成.PCH文件的.CPP文件(默认即StdAfx.cpp)你就可以看到/Yc这个开关,它表示这个文件编译了以后是否生成.PCH文件(可能/Yc的c表示create)./Fp指令指定生成的.PCH文件的名字及路径(可能/Fp的p代表path)./Yu的u即use使用,工程中只要包括了.H文件的文件都会有这个/Yu指令.如果选择自动Automatic...的话则原来为/Yc的地方就换成了/Yx指令.如果选择自动,则每次编译时编译器会看以前有没有生成过.PCH文件,有则不现生成否则就再次编译产生.PCH文件.

注意:
A,实际上,由Appzard项目向导生成的默认的头文件及CPP文件StdAfx.h和StdAfx.cpp可以是任何名字的.原因很简单.但如果你要这样做就要记得修改相应的Project->setting...下的几个预编译指(/Yc,/Yu,/Yx,/Fp)的参数.


B.在任何一个包括了将要预编译的头文件而使用了.PCH文件的工程文件的开头,一定必须要是在最开头,你要包含那个指定生成.PCH文件的.H文件(通过.CPP文件包括,默认为StdAfx.cpp),如果没包括将产生我最开头产生的错误.如果不是在最开头包括将产生让你意想不到的莫名其妙错误,如若不信,盍为试之?


C.预编译文件.PCH生成之很耗时间,而且生成之后它也很占磁盘空间,常在5-6M,注意项目完成之后及时清理无用的.PCH文件以节约磁盘空间.


D.如果丢了或删了.PCH文件而以后要再修改工程文件时,可将指定的/Yc的.CPP文件(默认为StdAfx.cpp)重新编译一次即可再次生成.PCH文件,不用傻傻的按F7或Rebuild All

 

    照这么说,我这种情况只要重新将“StdAfx.cpp”编译一下就可以了,一试,马上能编译运行了。心里不知道有多高兴,因为以前碰到过几次这样的问题都不知道怎么解决,只好重新创建一个相同的工程。
    以前还碰到过另外一种情况(早就解决了的):新建一个工程,随便找一个cpp文件,按ctrl+f7系统将会提示:fatal error C1083: 无法打开预编译的头文件:”Debug/xxx.pch”: No such file or directory(其中xxx是工程的名字)这种情况也是一样的原因,为vc的stdafx.h头文件未编译所致。也可以这样解决:先F7,编译后再ctrf+f7。
    看来什么东西都要从原理入手,才能更容易地解决。

SAP中成本估算没有找到工艺路线消息处理实例 在针对成品的标准成本核算处理过程中,系统中会经由设定好的策略来收集成品相关成本组成,最终计算出产成品的标准成本。关于成本组成,可以归纳为三个基本要素,料,工,费。即标准成本就是要知道,生产一件成品,需要消耗多少钱的原材料?消耗多少钱的人工?以及其它的间接消耗? 某日,接到CO同事的反馈,在用CK11N做产成品标准价格核算时,提示没有工艺路线确定,但该消息为绿灯,可以通过。基于业务上的谨慎,提出分析。 从提示可以看出问题与工艺路线有关。因为,成品工艺路线中设定有成品生产所耗工时,所以,在计算产成品标准 阅读详情

相关推荐

轻量级替代方案:用AIFlowy + Ollama在本地快速搭建一个可用的AI智能体平台

本文介绍了如何使用AIFlowy和Ollama在本地快速搭建轻量级AI智能体平台,涵盖从环境准备到智能体集成的全流程。通过简化部署步骤和优化性能,15分钟内即可完成搭建,适用于原型验证和小团队协作,显著提升开发效率。

weixin_29207533的博客 219

无法打开预编译头文件的解决方法及预编译头原理

 1。用VC.NET编辑程序,按Ctrl+F7,出现下列错误:fatal error C1083: 无法打开预编译头文件:“Debug/UGFace.pch”: No such file or  directory  解决方法:修改:项目->属性->C/C++ ->预编译头->不使用预编译头 即可。2。先打开一个以前做了一下的工程,编译通过,能运行。我就稍微修改了一下代码(只是修

zhangting1987的专栏 6385

Zabbix安装与部署 系统环境:centos7.0

Zabbix安装与部署 系统环境:centos7.0

weixin_42485027的博客 2600

c++ 无法打开预编译头文件 pch

主程序.cpp文件 上右键——属性,预编译头选“创建”,其它cpp选“使用”。

weixin_42424046的博客 1364

MIPI DPHY接口(基于Xilinx FPGA实现)案例分析

在Xilinx FPGA实现MIPI DPHY接口的案例(包括CIS协议层)。截止目前为止,Xilinx仅在Ultrascale+及其以上版本的FPGA IO可直接支持MIPI 电平输入,其他的,都需要转换成LVDS来接收。

ONEFPGA的博客 5627

AI测试实战:用文心一言5分钟生成登录功能测试用例(附Excel模板)

本文详细介绍了如何利用AI工具(如文心一言)在5分钟内高效生成登录功能测试用例,并提供了可直接应用的Excel模板。通过对比传统手工编写与AI生成的效率差异,展示了AI在软件测试领域的巨大优势,包括减少重复劳动、避免边界条件遗漏和提升格式标准化。文章还包含实战技巧、高级应用方案和行业最佳实践,助力测试人员快速提升工作效率。

weixin_30379531的博客 410

错误C1083无法打开预编译头文件: “Debug\XXX.pch”: No such file or directory 的解决方法

错误C1083无法打开预编译头文件: “Debug\XXX.pch”: No such file or directory 问题起因:在项目(project)里将所有.h、.cpp文件移除,重新添加后编译出现上述错误。 网上搜了一番,有两种解决办法: 1、将项目设置成不使用预编译头。 2、将项目设置成创建预编译头。 以上两种方法都可行,但是为什么之前的就能正常编译呢?重新添加头文件/源文件之后就要修改项目属性? 于是对比了一下前后两个项目文件,发现一下变化,左边是之前的,右边是后来编译提示错误的。 原来重

迪迦 • 奥特曼 1万+

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1600

[转载]error无法打开预编译头文件的解决方法及预编译头原理

1。用VC.NET编辑程序,按Ctrl+F7,出现下列错误:fatal error C1083: 无法打开预编译头文件:“Debug/UGFace.pch”: No such file or directory 解决方法:修改:项目->属性->C/C++ ->预编译头->不使用预编译头 即可。2。学用Visual C++ 6.0的第一个例程就让我出了错.用向导生成第一个基于对话框的Project之后,当我按照书上的源程序一个字一个字地输进去之后,始终有一个错误:fatal error C1010: unex

C++/MFC菜鸟 4851

[Multisim][模电实验]简易函数信号发生器的设计与实现_北京邮电大学2019级信通院电子电路实验下

本文记述了笔者设计并实现以±12V供电电压输出1KHZ~10KHZ频率连续可调的方波、三角波和正弦波的过程。其中,方波输出电压峰峰值为12V(误差<20%),占空比可调、三角波输出电压峰峰值为8V(±20%),正弦波输出电压峰峰值≥1V。

lgc0208的博客 4万+

一文读懂AI大模型时代的RAG技术

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合检索技术与生成模型的技术架构,旨在通过动态引入外部知识库增强大语言模型(LLM)的生成能力。其核心思想是通过检索系统从外部数据源(如企业知识库、实时文档等)获取相关信息,并将检索结果作为上下文输入生成模型,以提高生成答案的准确性、时效性和专业性

awei0916的专栏 2119

error无法打开预编译头文件的解决方法及预编译头原理

1。用VC.NET编辑程序,按Ctrl+F7,出现下列错误: fatal error C1083: 无法打开预编译头文件:“Debug/UGFace.pch”: No such file or directory 解决方法:修改:项目->属性->C/C++ ->预编译头->不使用预编译头 即可。 2。学用Visual C++ 6.0的第一个例程就让我出了错.用向导生成第一个基于对话框

Lion's Blog 3177

[QMT和ptrade量化交易小白入门]-125、菜场大妈加上四大现金行业指数风控,最大回撤从22%减少了一半

群里面有人建议,在菜场大妈策略的基础上,加入申万的行业指数(银行,钢铁,有色,煤炭)测算其宽度,当这四大行业其中有一个高就会清仓(用来控制回撤)。这背后的逻辑是,在存量资金博弈的市场环境中,资金总量相对固定,当银行、钢铁、有色、煤炭等大市值周期行业因基本面改善(如涨价、政策催化)或避险需求而走强时,会吸引大量资金涌入,导致其他板块(尤其是小市值股票)面临流动性虹吸。经过回测,对比上一个版本发现确实是可以降低一半的回撤,最大回撤从22.3%降到了11.4%,而且有很多时间是空仓等待。

木头大左的博客 241

无法打开预编译头文件的解决方法及预编译头原理[ZZ] 转

学用Visual C++ 6.0的第一个例程就让我出了错.用向导生成第一个基于对话框的Project之后,我按照书([Visual C++面向对象与可视化程序设计(第二版)]清华大学出版社pp76)上的例子开始了我的第一个程序,当我按照书上的源程序一个字一个字地输进去之后,始终有一个错误:fatal error C1010: unexpected end of file while looking...

weixin_30409849的博客 93

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

fatal error C1083: 无法打开预编译头文件:“Debug/UGFace.pch”: No such file or  directory

1。用VC.NET编辑程序,按Ctrl+F7,出现下列错误: fatalerrorC1083:无法打开预编译头文件:“Debug/UGFace.pch”:Nosuchfileordirectory 解决方法:修改:项目->属性->C/C++ ->预编译头->不使用预编译头 即可。 2。先打开一个以前做了一下的工程,编译通过,能运行。我就稍微修改了...

a1059682127的博客 504

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C++预编译头

解释vs2017以前的 #include “stdafx.h” 和新版本的vs2017的 #include "pch.h" 下面以vs2017的 #include "pch.h" 初步感觉这个文件没有用,但是去掉之后真是报错! 预编译头: https://blog.youkuaiyun.com/u012135461/article/details/78430236 也许请教了别的高...

weixin_42053726的博客 9492

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VS 无法打开预编译头文件:“*.pch”的错误

stdafx.h 在使用过Visual Studio,VC++的时候,我们新建工程的时候往往在每个.cpp文件的最前面都有一个#include "stdafx.h"。这个文件有他的作用,下面介绍其原理和使用过程中会遇到的一些问题。 简介 stdafx,全称Standard Application Framework Extensions,标准引用框架扩展。 其实就是头文件预编译,我们知道C++文件进行编译时,需要先进行预编译,包括宏定义替换,条件编译以及#include文件包含。 这里就是将一个工程

Z_Paper的博客 9837

“C1083 无法打开预编译头文件”的处理与深入理解预编译头文件

VS生成的项目结构有一些杂乱,所有代码文件都堆放在一起,于是对齐进行了整理,但是却出现了“C1083 无法打开预编译头文件”的错误。因此研究了一下应该如何规范地使用预编译头,达到加快项目编译速度的目的。

qq_46314975的博客 1308

预编译头简介

C/C++程序编译时的预编译头,也叫“被预编译的头文件”,英文名是“precompiled header”. 使用预编译头,是一种提高编译器编译速度的方法。举个例子,1.cpp和2.cpp都包含了util.h;在编译1.cpp的时候,编译器需要把util.h和1.cpp结合起来解析一遍,而在编译2.cpp的时候,编译器又需要将util.h和2.cpp结合起头来再解析一遍。这其中就会把util.h解...

FinixLei的专栏 (https://github.com/FinixLei) 1666

解决 error C1083: 无法打开预编译头文件xxx.pch: No such file or directory

问题产生: 通常情况下不会出现这种错误,我出现这样的错误提示是因为,我要发布的是一个静态库,于是把要发布的头文件放到了include目录下,把其他文件(包括stdAfx.h及stdAfx.cpp)放到了src目录下,于是编译时提示: 错误 1 error C1083: 无法打开预编译头文件:“Debug\PlotData.pch”: No such file or directory e:

n_fly的博客 6269

VC++编译器预编译头功能(stdafx.h)原理与实践

VC++预编译头功能的原理与实践。

smstong的成长轨迹 5459
上一篇: 利用CMemDC画图的两种方法
下一篇: CVS相关工具下载地址总结
mplus
博客等级 码龄16年 10粉丝 9原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值