msvc++中的预编译头文件pch.hpp和stdafx.h

这篇具有很好参考价值的文章主要介绍了msvc++中的预编译头文件pch.hpp和stdafx.h。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

预编译头文件

在 Visual Studio 中创建新项目时,会在项目中添加一个名为 pch.h 的“预编译标头文件”。 (在 Visual Studio 2017 及更高版本中,该文件名为 stdafx.h)此文件的目的是加快生成过程。 应在此处包含任何稳定的标头文件,例如标准库标头(如 )。 预编译标头仅在它或它包含的任何文件发生更改时进行编辑。 如果只在项目源代码中进行更改,则生成将跳过对预编译标头的编译。

pch.h、pch.hpp、stdafx.h是等价的,甚至你可以在项目中修改为自定义文件名。

来源:预编译的头文件 | Microsoft Learn

实际应用中,还经常把外部调用的API的头文件编译为PCH,比如调用STL、调用Windows的API windows.h等等。

vs中查看预编译头文件

可以在vs中: 选中某个project - 右键 - 属性 - c/c++ - 预编译头 - 预编译头文件,这个选项看到文件名

msvc++中的预编译头文件pch.hpp和stdafx.h

在当前项目中所有cpp文件的第一行都要包含预编译头文件,也就是该头文件是第一个被包含的:#include "pch.hpp"

这是使用预编译头的硬性规定,假如不遵守这个规定,编译会失败,报错如下:

fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?

visual studio高级功能

重复地在所有源文件中添加预编译头文件很繁琐,所幸的是Visual C++提供了强制在所有源文件中包含指定头文件的选项,方法如下:选中 项目 - 右键 - 属C/C++ — 高级 - 强制包含文件 ,选项添加“预编译头文件”即可,如下图所示

msvc++中的预编译头文件pch.hpp和stdafx.h

注意,在预编译头文件之后再重复包含该文件内已包含的头文件并不会有问题,所以不必特意去掉那些重复的包含语句

.pch为什么这么大?

在【属性 - c/c++ - 预编译头 - 预编译头文件】可以设置.pch文件的路径,一般会在obj目录下生成一个projectname.pch文件。

由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。

如果你的磁盘空间有限,可以在生成事件中将.pch文件删除。执行程序时并不需要它们

pch.hpp可以不存在

在vs的设置中指定了pch.hpp,项目中实际也可以不存在

pch.cpp

选中pch.cpp 右键属性 - c/c++ - 预编译头,可以看到它的选项是【创建】,而其它cpp文件是【使用】文章来源地址https://www.toymoban.com/news/detail-691423.html

到了这里,关于msvc++中的预编译头文件pch.hpp和stdafx.h的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vs2015、vs2017、vs2019、msvc自动编译脚本

    rem 记录编译时间 echo ** 版本构建开始时间: %date% %time% build.log rem 设置编译器进程名 set DstProgram=devenv.exe rem 搜索目标进程以及其目录 echo 正在搜索\\\"%DstProgram%“, 请稍候… for %%a in (“C:Program Files (x86)”, “C:Program Files”, “D:Program Files (x86)”, “D:Program Files”) do for /f “delim

    2024年02月06日
    浏览(82)
  • 如何在Qt中配置MSVC编译器链接器参数?

    原标题:掌握VS项目配置 【进阶】— 编译器链接器配置 在上一篇基础篇中,我们主要探讨了VS的构造系统模型,了解了VS项目最基本的输入输出配置。输入输出是系统对外的功能接口,是系统最基础的部分。 在本章的进阶篇中,我们要探讨构造系统的内部参数。内部参数用于

    2024年02月15日
    浏览(54)
  • QT学习笔记-QT5.15 + MSVC编译套件时编译日志及运行日志日志乱码解决

    操作系统:Windows10专业版 QT版本:QT5.15.2 QtCreator版本:9.0.2 MSVC版本:MSVC 2019 64bit C/C++编译器:Microsoft Visual C++ Compiler 17.1.32328.378(amd64) 调试器:Auto-detected CDB at C:Program FilesWindows Kits10Debuggersx64cdb.exe 文件编码的设置都是采用的默认值UTF-8,如下图: 当qt的项目采用MSVC构建套

    2024年02月14日
    浏览(54)
  • 查看Visual Studio软件_MSC_VER值(MSVC编译器版本)的方法

      本文介绍查看 Visual Studio 软件 _MSC_VER 值的方法。    _MSC_VER 是微软公司推出的 C/C++ 编译器—— MSVC 编译器的一个内置宏,其值表示当前 Visual Studio 软件中 MSVC 编译器的具体版本。不同的 Visual Studio 软件版本对应着不同的 MSVC 编译器版本——无论是不同发布年份的版本(

    2024年02月06日
    浏览(46)
  • 【opencv】无法打开源文件opencv.hpp | bug记录

    今天这个bug其实比较搞笑: 那就是我们的VS软件没有识别到安装的库。肯定是下面三个环节哪里出错了: 1)项目属性里的包含目录(include) 2)项目属性里的库目录(lib) 3)项目属性里的附加依赖项(opencv_world470d.lib 它在库目录里 可能会因为版本不同而不同) 它们的位置分别在

    2024年02月08日
    浏览(43)
  • Qt5.15.10+msvc2019_x86+qwebengine(含mp4)源码编译

    win10 64bit 英文版(或者把“区域”-“管理”-“非Unicode程序中所使用的当前语言”-改为\\\"英语(美国)\\\") 内存16g够用,cpu性能越高越好,硬盘在安装环境、下载源码后,至少还有100g可用空间 https://download.qt.io/archive/qt/5.15/ 1、安装 vs_community_2019.exe 勾选桌面C++开发工具 2、安装

    2024年02月09日
    浏览(51)
  • OpenCV(VS2019)——无法打开“opencv2/opencv.hpp”文件

    借鉴文章:OpenCV——无法打开“opencv2/opencv.hpp”文件_zy2317878的博客-CSDN博客_opencv2/opencv.hpp 第一步:找到opencv,hpp路径,并复制路径,下边是我的路径:  第二步:右键项目,点属性,在弹出的窗口里找C/C++那一栏下的常规,还需添加一个 附加包含目录 路径(刚刚复制的路径)

    2024年02月15日
    浏览(39)
  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器控制的预取和利用HBM扩展内存层次(七)

    硬件预取的替代方案是编译器在处理器需要数据之前插入预取指令来请求数据。 预取有两种类型: ■ 寄存器预取将值加载到寄存器中。 ■ 高速缓存预取仅将数据加载到高速缓存。 这两种类型都可以分为有错或无错的,即预取的地址是否会导致虚拟地址错误或保护错误的异

    2024年02月13日
    浏览(54)
  • QT使用MSVC编译器报错:Project ERROR: Cannot run compiler ‘cl‘以及后续问题解决

    记录一次qtcreator工程使用MSVC创建报错“ Project ERROR: Cannot run compiler ‘cl’ ”,没办法运行编译器cl。 只显示 qmake配置文件 不出现工程文件, 在qtcreator安装目录下的MSVC2017确实并未找到cl.exe文件,于是下载了everything搜索软件,在电脑上找到了VSstudio的安装目录下MSVC2017编译器下

    2024年02月05日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包