【问题标题】:What is stdafx.cpp file that is created automatically in a new c++ project in visual studio 2012什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件
【发布时间】: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

标签: c++ visual-studio


【解决方案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”,肯定是更明显的首字母缩略词。只是换了个名字,机制还是一样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2012-08-28
    • 2017-04-14
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多