web-dev-qa-db-de.com

Kann ich #include "pch.h" anstelle von #include "stdafx.h" als Precompile-Header in Visual Studio C++ verwenden?

Dies ist das erste Mal, dass ich mit C++ arbeite und mich richtig mit dem Programmieren beschäftige. Ich verfolge die C++ - Tutorials auf learncpp.com und verwende Visual Studio 2017 ... 

Im Tutorial beginnen sie mit einigen einfachen "Hallo, Welt!" Code und am Anfang des Codes wird #include "stdafx.h" zusammen mit #include <iostream> eingefügt. Wenn ich diesen Code selbst repliziere und versuche, ihn zu erstellen, erhalte ich die Fehlermeldung:

C1010: unerwartetes Dateiende beim Suchen nach vorkompiliertem Header. Haben Sie vergessen, #include "pch.h" zu Ihrer Quelle hinzuzufügen?

Beim Betrachten meines Lösungs-Explorers fiel mir auf, dass in ihrem Tutorial im Header- und Quellendateireiter Dateien mit den Namen "stdafx.h" und "stdafx.cpp" vorhanden sind. Für mich heißen diese Dateien "pch.h" und "pch" .cpp ".

Also habe ich versucht, den #include "stdafx.h" in #include "pch.h" umzubenennen und der Code wurde perfekt erstellt und ausgeführt. Soll ich also für den Rest meines Codes einfach bei #include "pch.h" bleiben, oder handelt es sich um eine Art Problem?

Vielen Dank!

9
Honesty_DEV

Der standardmäßige Name der vorkompilierten Header war stdafx.h seit einigen Jahren. In letzter Zeit wurde mit VS 2017 der Standardname geändert, den der Projektassistent in pch.h erstellt. Ich weiß nicht warum, aber sie haben es getan.

Sie können den Namen der vorkompilierten Header-Datei in den Projekteigenschaften unter Konfigurationseigenschaften -> C/C++ -> Vorkompilierte Header anpassen. Sie können dort auch deren Verwendung aktivieren oder deaktivieren. Sie können dies sogar pro Datei definieren. Sie können sogar mehrere verschiedene vorkompilierte Header-Dateien in einem Projekt konfigurieren.

Für Sie also eine konkrete Frage: Es gibt keine Probleme, die stdafx.h durch pch.h in Ihrem Tutorial ersetzen. Das Tutorial ist wahrscheinlich nur älter und wurde noch nicht aktualisiert.

12
marc40000

Verschieben Sie "#include pch.h" an den Anfang der Datei (vor allen anderen Kopfzeilen).

Einige Compiler kompilieren den Inhalt nicht standardmäßig vor den vorkompilierten Header-Dateien. Diese Einstellung kann jedoch geändert werden.

1
user3579754

In den Tutorials von learncpp.com empfehlen die Ausbilder, die zusätzliche Option "Vorkompilierter Header" zu deaktivieren, wenn Sie ein neues C++ - Projekt mit der Windows-Desktop-Option Wizard in Visual Studio erstellen. Es ist eine gute Idee, dies zu tun, wenn wir nicht in Header-Dateien eingeführt wurden.

Pch.h scheint jedoch das "neue" stdafx.h zu sein, so dass Sie nicht das erstere anstelle des letzteren verwenden können, sondern dass Sie dies tun müssen, zumindest wenn Sie die Option "Precompiled Header" wählen.

0
ManuAlvarado22