Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你好,世界C++;Visual Studio中的应用程序-有关预编译头的问题 我刚刚开始学习C++,在虚幻引擎中创建游戏。_C++_Visual Studio - Fatal编程技术网

你好,世界C++;Visual Studio中的应用程序-有关预编译头的问题 我刚刚开始学习C++,在虚幻引擎中创建游戏。

你好,世界C++;Visual Studio中的应用程序-有关预编译头的问题 我刚刚开始学习C++,在虚幻引擎中创建游戏。,c++,visual-studio,C++,Visual Studio,我有一些很棒的教程视频,我希望在整个系列中都能看到,但我已经被第一个视频卡住了:[ 我对C#和Java有相当多的了解 基本上,在本教程中,他们在Visual Studio 2017中制作了一个HelloWorld!Windows控制台应用程序。他们代码中的第一行是“#include“stdafx.h”,在我的代码中有“#include”pch.h” 我知道这些预编译头允许我访问名称空间中的特定代码/函数,但这些代码存储在哪里?如果我将include stdafx.h添加到头中,为什么会出现一个错

我有一些很棒的教程视频,我希望在整个系列中都能看到,但我已经被第一个视频卡住了:[

我对C#和Java有相当多的了解

基本上,在本教程中,他们在Visual Studio 2017中制作了一个HelloWorld!Windows控制台应用程序。他们代码中的第一行是“#include“stdafx.h”,在我的代码中有“#include”pch.h”


我知道这些预编译头允许我访问名称空间中的特定代码/函数,但这些代码存储在哪里?如果我将include stdafx.h添加到头中,为什么会出现一个错误,说明无法打开源代码?

预编译头只是一种在您想要编译相同头时缓存编译的方法s表示多个.cpp(翻译单位文件)

所以如果你有

a.cpp
b.cpp
这些包括,比如

<windows.h>
<iostream>

然后,只对这些include头进行一次编译(对于第一个翻译单元),其他翻译单元将重用编译,只要它们包含完全相同的内容-这就是它们停止使用特定文件名的原因。按照惯例,此文件名为stdafx.h


所以通常我有一个stdafx.cpp,其中我指定“create PCH”,其他人使用它。

没有标准的方法来命名预编译头文件。如果您的名为PCH.h,那就太好了。“代码存储在哪里?”我不确定你的意思。你会找到你的答案的。啊,我现在有点明白了…基本上我对他们的做法大错特错。我认为他们喜欢在c#/Java中“使用”或“导入”。如果你是初学者,完全避免预编译头。它们是一种旨在减少编译时间的优化,但除非你有一个大的代码库(大约100000多行代码)它们不会给你带来任何重大的好处。但它们会导致许多棘手的问题。因此,我建议在你真正需要使用和了解它们之前,完全避免使用预编译头。@BigTLarrity:啊,好吧,那么我可以开始删除它们,并简单地在每个f中包含我需要的所有内容吗ile(然后我可以通过在自己的代码中使用它来真正了解“pch.h-etc”的功能)?否。从一开始就习惯使用它们。这会大大加快编译速度。好的,谢谢。我尝试删除该行,但还是出现了此错误:S严重性代码描述项目文件行抑制状态错误C1010查找预编译头时出现意外的文件结尾。您是否忘记添加“#include”pch.h”'到您的源?HelloWorld c:\users\main user\source\repos\HelloWorld\HelloWorld\HelloWorld.cpp 21您必须从编译器选项中删除PCH选项。右键单击项目、属性、c/c++选项、预编译标题。