Discussion:
Problem mir Precompiled Headers
(zu alt für eine Antwort)
Matthias Bunge
2004-01-12 13:37:04 UTC
Permalink
Hallo,

beim kompilieren meines Projekts
im Release-Mode erhalte ich
mehrfach die folgende Fehlermeldung

fatal error C1083: vorkompilierte Headerdatei-Datei
kann nicht geöffnet werden:
'.\Release/KopieTest.pch': No such file or directory

im Debug-Mode gibt es keine Probleme.

Weiß jemand Rat?


Danke

Matthias
Andre Stille [MVP]
2004-01-12 14:13:32 UTC
Permalink
Hallo!
Post by Matthias Bunge
Hallo,
beim kompilieren meines Projekts
im Release-Mode erhalte ich
mehrfach die folgende Fehlermeldung
fatal error C1083: vorkompilierte Headerdatei-Datei
'.\Release/KopieTest.pch': No such file or directory
im Debug-Mode gibt es keine Probleme.
Dein Projekt benutzt vorkompilierte Headerdateien, aber der Compiler
kann diese nicht finden. Dazu folgende Punkte:

1) Die vorkompilierte Header-Datei wird durch eine .cpp-Datei erzeugt,
normalerweise nennt sich diese StdAfx.cpp. Bei der muss unter den
Optionen stehen, dass sie die vorkompilierte Header-Datei erzeugt.

2) Bei allen anderen .cpp-Dateien muss unter den Optionen stehen, dass
die vorkompilierte Header-Datei benutzt wird. Logischerweise muss
dann auch bei allen Dateien derselbe Dateiname für die pch-Datei
angegeben sein.

3) Eventuell das Erstellen einer neuen vorkompilierten Header-Datei
erzwingen. Möglichkeiten sind hier ein Rebuild des Projektes, ein
Rebuild der StdAfx.cpp oder ein Löschen der vorkompilierten Header-
Datei.

MfG
Andre Stille
Matthias Bunge
2004-01-12 14:30:46 UTC
Permalink
Hallo Andre,
Post by Andre Stille [MVP]
Dein Projekt benutzt vorkompilierte Headerdateien, aber der Compiler
1) Die vorkompilierte Header-Datei wird durch eine .cpp-Datei erzeugt,
normalerweise nennt sich diese StdAfx.cpp. Bei der muss unter den
Optionen stehen, dass sie die vorkompilierte Header-Datei erzeugt.
Ist der Fall.
Post by Andre Stille [MVP]
2) Bei allen anderen .cpp-Dateien muss unter den Optionen stehen, dass
die vorkompilierte Header-Datei benutzt wird. Logischerweise muss
dann auch bei allen Dateien derselbe Dateiname für die pch-Datei
angegeben sein.
Ist ebenfalls der Fall.
Post by Andre Stille [MVP]
3) Eventuell das Erstellen einer neuen vorkompilierten Header-Datei
erzwingen. Möglichkeiten sind hier ein Rebuild des Projektes, ein
Rebuild der StdAfx.cpp oder ein Löschen der vorkompilierten Header-
Datei.
Rebuild bringt kein Ergebnis. (PCH fehlt)
Rebuild StdAfx auch nicht. (PCH fehlt)
Ein löschen des PCH ist nicht möglich da die Datei ja nicht existiert!

Hast Du evtl. noch eine andere Idee?

Gruß Matthias
Andre Stille [MVP]
2004-01-12 15:08:25 UTC
Permalink
Hallo Matthias,
Post by Matthias Bunge
Post by Andre Stille [MVP]
3) Eventuell das Erstellen einer neuen vorkompilierten Header-Datei
erzwingen. Möglichkeiten sind hier ein Rebuild des Projektes, ein
Rebuild der StdAfx.cpp oder ein Löschen der vorkompilierten Header-
Datei.
Rebuild bringt kein Ergebnis. (PCH fehlt)
Rebuild StdAfx auch nicht. (PCH fehlt)
Ein löschen des PCH ist nicht möglich da die Datei ja nicht existiert!
Dann liegt da dein Fehler. Die StdAfx.cpp hat im Release-Modus unter den
Optionen stehen, dass sie die vorkompilierte Header-Datei benutzt. Dort
muss aber die Option angewählt sein, daß die vorkompilierte Header-Datei
erstellt wird.

stdafx.cpp:

Bei VC7.1 (Englisch):
Create/Use Precompiled Header: Create Precompiled Header (/Yc)
Create/Use PCH Through File: stdafx.h
Precompiled Header File: .\Release/KopieTest.pch

Bei VC6 (Deutsch):
Datei der vorkompilierten Header (.PCH) erstellen
Durch Header: stdafx.h

MfG
Andre Stille
Matthias Bunge
2004-01-12 15:17:13 UTC
Permalink
Hallo Andre,
Post by Andre Stille [MVP]
Dann liegt da dein Fehler. Die StdAfx.cpp hat im Release-Modus unter den
Optionen stehen, dass sie die vorkompilierte Header-Datei benutzt. Dort
muss aber die Option angewählt sein, daß die vorkompilierte Header-Datei
erstellt wird.
Create/Use Precompiled Header: Create Precompiled Header (/Yc)
Create/Use PCH Through File: stdafx.h
Precompiled Header File: .\Release/KopieTest.pch
Sorry.
Bei mir Stand es auf Use Precompiled Header.
Das umstellen und neukompillieren der stdafx.cpp brachte
das gewünschte Resultat.

Trotzdem Danke

Matthias

Loading...