msvc++中的预编译头文件pch.hpp和stdafx.h
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/17674130.html
预编译头文件#
在 Visual Studio 中创建新项目时,会在项目中添加一个名为 pch.h 的“预编译标头文件”。 (在 Visual Studio 2017 及更高版本中,该文件名为 stdafx.h)此文件的目的是加快生成过程。 应在此处包含任何稳定的标头文件,例如标准库标头(如
pch.h、pch.hpp、stdafx.h是等价的,甚至你可以在项目中修改为自定义文件名。
实际应用中,还经常把外部调用的API的头文件编译为PCH,比如调用STL、调用Windows的API windows.h等等。
vs中查看预编译头文件#
可以在vs中: 选中某个project - 右键 - 属性 - c/c++ - 预编译头 - 预编译头文件,这个选项看到文件名
在当前项目中所有cpp文件的第一行都要包含预编译头文件,也就是该头文件是第一个被包含的:#include "pch.hpp"
这是使用预编译头的硬性规定,假如不遵守这个规定,编译会失败,报错如下:
fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?
visual studio高级功能#
重复地在所有源文件中添加预编译头文件很繁琐,所幸的是Visual C++提供了强制在所有源文件中包含指定头文件的选项,方法如下:选中 项目 - 右键 - 属C/C++ — 高级 - 强制包含文件 ,选项添加“预编译头文件”即可,如下图所示
注意,在预编译头文件之后再重复包含该文件内已包含的头文件并不会有问题,所以不必特意去掉那些重复的包含语句
.pch为什么这么大?#
在【属性 - c/c++ - 预编译头 - 预编译头文件】可以设置.pch文件的路径,一般会在obj目录下生成一个projectname.pch文件。
由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。
如果你的磁盘空间有限,可以在生成事件中将.pch文件删除。执行程序时并不需要它们
pch.hpp可以不存在#
在vs的设置中指定了pch.hpp,项目中实际也可以不存在
pch.cpp#
选中pch.cpp 右键属性 - c/c++ - 预编译头,可以看到它的选项是【创建】,而其它cpp文件是【使用】
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
2022-09-03 vs code python(Pylance server) crash
2014-09-03 为Unity项目生成文档(二)
2014-09-03 为Unity项目生成文档(一)
2014-09-03 C# 编码约定(C# 编程指南)
2014-09-03 C#泛型简化代码量示例
2014-09-03 IL查看泛型
2013-09-03 Mecanim分析