我可以使用#include"pch.h"而不是#include"stdafx.h"作为Visual Studio C++中的预编译头吗?

Hon*_*DEV 15 c++ compiler-errors visual-studio

这是我第一次使用C++并正确地进行编码.我正在关注learncpp.com上的C++教程,我正在使用Visual Studio 2017 ...

在教程中,他们从一些简单的"Hello,world!"开始.代码和他们放在#include "stdafx.h"一起的代码顶部#include <iostream>.当我自己复制此代码并尝试构建它时,我收到错误:

C1010:查找预编译头时意外结束文件.您是否忘记在源代码中添加#include"pch.h"?

当我的解决方案资源管理器找我注意到,在他们的头文件和源文件选项卡教程,他们被称为"stdafx.h中"和"stdafx.cpp"的文件,但对我来说这些文件被称为"pch.h"和"PCH的.cpp".

所以我尝试重命名为#include "stdafx.h"to #include "pch.h",代码构建完美并执行完毕.那么我应该坚持使用#include "pch.h"其余代码还是这个问题?

谢谢!

mar*_*000 20

多年来,默认的预编译头文件名是stdafx.h.最近,在VS 2017中,他们将项目向导创建的默认名称更改为pch.h. 我不知道为什么,但他们做到了.

您可以在"配置属性" - >"C/C++" - >"预编译标题"下的"项目属性"中调整预编译头文件的名称.您也可以在那里启用或禁用它们.您甚至可以基于每个文件来定义它.您甚至可以在一个项目中配置多个不同的预编译头文件.

所以对你来说具体问题:在你的教程中用pch.h替换stdafx.h不会有任何问题.该教程可能只是较旧,尚未更新.

  • 这里最好的答案.考虑到OP是C++的新手,由于头部的复杂性而陷入困境,这可能不是一个好方法.我和初学者在同一条船上,直到我进入教科书的那一章,最好只使用Console Wizard. (4认同)
  • @Franky:使用 pchs,您可以优化代码的构建时间。就这样。启用或禁用它们不会以任何其他方式降低您的代码。 (3认同)