我可以在Visual Studio C++中使用 #include "pch.h" 而不是 #include "stdafx.h" 作为我的预编译头吗?
Can I use #include "pch.h" instead of #include "stdafx.h" as my precompile header in Visual Studio C++?
这是我第一次与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"
重命名为#include "pch.h"
,代码构建并完美执行。那么我应该在其余代码中坚持使用#include "pch.h"
还是某种问题?
谢谢!
几年来,默认的预编译标头名称是 stdafx.h。最近,在VS 2017中,他们将项目向导创建的默认名称更改为pch.h。我不知道为什么,但他们做到了。
可以在"项目属性"中的"配置属性"->"C/C++"->"预编译头"下调整预编译头文件的名称。您还可以在此处启用或禁用它们的使用。您甚至可以基于每个文件定义它。您甚至可以在一个项目中配置多个不同的预编译头文件。
所以对于您的具体问题:在您的教程中将 stdafx.h 替换为 pch.h 不会有任何问题。本教程可能只是较旧,尚未更新。
尝试将"#include pch.h"移动到文件的最顶部(在任何其他标头之前(。
默认情况下,某些编译器不会在预编译头文件之前编译内容。不过,可以更改此设置。
在 learncpp.com 教程中,讲师建议我们在Visual Studio上使用Windows桌面向导选项创建新的C++项目时关闭"预编译头"附加选项。在我们还没有被介绍到头文件的时候这样做是个好主意。
但是,pch.h 似乎是"新的"stdafx.h,所以并不是说您可以使用前者而不是后者,而是您必须这样做,至少如果选择"预编译头"选项。
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我的字符计数代码计算错误.为什么
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- cmake在我的项目中所需的所有静态库都不成功
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 为什么我的for循环不能正确获取argv
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 0-1背包代码中的错误.我的代码中有什么错误
- 当我的阵列太大时出现分段错误
- 为什么我不能从同一目录中的另一个文件中 #include 我的类?
- 我可以在Visual Studio C++中使用 #include "pch.h" 而不是 #include "stdafx.h" 作为我的预编译头吗?
- 是 std::include 中的错误还是我做错了什么
- #include 目录无法识别,我的导师无法解决
- 我的#include依赖项似乎阻止了我使用类
- 将我的类移动到目录后出现链接错误"vc/include/"
- 提供的头文件不会 #include <string> ,也不允许更改。如何将其包含在我的 cpp 文件中?
- 在我的项目中使用预编译的头(clang/llvm,但也使用gcc).如何在make中部署-include选项
- 为什么我的#include文件不能编译