2017-07-17 3 views
1

Ich bin ein wenig verwirrt darüber, wann /Yc zu verwenden (erstellen PCH) im Gegensatz zu /Yu (Verwendung PCH). Für ein Projekt, das nie vorkompilierte Header in der Vergangenheit verwendet wird, natürlich, Die PCH-Datei existiert zunächst nicht. Soll ich einen ersten Build mit /Yc abfeuern, die PCH-Datei erstellen lassen und dann die Einstellung für alle folgenden Builds auf /Yu ändern?PCH Compiler-Optionen für MSVC

Das kann nicht wahr sein, oder?

Antwort

2

Versuchen Sie Folgendes: Erstellen Sie einen Header, der alle Header enthält, die vorkompiliert werden sollen, z. B .: stdafx.h (dies MUSS das erste sein, das in allen .cpp Dateien enthalten ist). Datei zum Erzeugen der PCH: , die nur stdafx.h enthält und diese mit /Yc kompilieren. Alle anderen .cpp-Dateien enthalten am Anfang stdafx.h und kompilieren mit /Yu. MSVC ist schlau genug, um die /Yc Datei 1. zu machen.

+0

Richard: Natürlich sind das die Standardschritte, die man beim Aktivieren von PCH-Builds ausführen muss, und das habe ich getan. Meine Frage ist was _else_ soll ich tun? – ForeverLearning

+0

Verstehe nicht - die Standardschritte funktionieren natürlich - also musst du erklären, warum sie nicht für dich arbeiten. –

+0

Das Projekt, mit dem ich es zu tun habe, beschwert sich, dass es die PCH-Datei nicht öffnen kann (keine solche Datei oder Verzeichnis). Das war der Grund, warum ich gefragt habe, ob ich zuerst eine/Yc-Version erstellen soll, bevor ich sie in/Yu ändere. – ForeverLearning