什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件
Posted
技术标签:
【中文标题】什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件【英文标题】:What is stdafx.cpp file that is created automatically in a new c++ project in visual studio 2012 【发布时间】:2013-07-28 00:33:48 【问题描述】:据我了解,stdafx.h 是一个预编译的头文件,用于缩短 Visual Studio 中的编译时间。当我在 Visual Studio 2012 中创建一个 c++ 项目时,还有一个 stdafx.cpp。谁能解释一下stdafx.h和stdafx.cpp的关系?
【问题讨论】:
您之前回答了自己的问题。 那么stdafx.cpp的作用是什么? 不能编译.h文件,需要.cpp文件编译。所以它是预编译文件;stdafx.cpp
包括所有你想要预编译的头文件并编译它们。你可以阅读更多here
【参考方案1】:
预编译头文件可以大大加快项目中 .cpp 文件的编译速度。按照惯例,stdafx.h #include 包含您要预编译的所有 .h 文件。您可以随意命名,但项目模板只选择 stdafx.h
但在此之前,必须有一个 .cpp 文件,该文件#includes stdafx.h 并首先被编译。在项目中的所有其他 .cpp 文件之前。完成后,编译器可以使用创建的 .pch 文件并快速编译所有其他 .cpp 文件,不再需要实际 #include 头文件。
Stdafx.cpp 就是那个 .cpp 文件。它有一个不同于所有其他 .cpp 文件的设置,它被构建为with /Yc。 “创建预编译头文件”选项。
更新:28 年后,微软在 VS2019 上打破了他们“曾经有一个标准框架但没有人见过它”的做法。现在命名为“pch”而不是“stdafx”,肯定是更明显的首字母缩略词。只是换了个名字,机制还是一样的。
【讨论】:
以上是关于什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件的主要内容,如果未能解决你的问题,请参考以下文章