error C2859 - Probleme mit vorkompilierten Header
-
Hallo,
mein Programm funktionierte bis grad super. Ein Kollege hat nun ein Projekt das bei mir als lib eingebunden ist, verändert. Es liegt nun unter einem anderen Verzeichnis.
Ich habe deshalb die zusätzlichen Includeverzeichnisse und zusätzlichen Bibliotheksverzeichnisse angepasst.Beim Kompilieren bekomme ich nun immer die Fehlermeldung:
error C2859: Verzeichnis\debug\vc90.pdb ist nicht die pdb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu.Die Fehlermeldung kommt in der Datei vor, in der ich die Includes angepasst habe.
Wenn ich beim vorkompilierten Header nun auf
Vorkompilierten Header erstellen (/Yc)
gehe, kompiliert er. Wenn ich anschließend wieder auf vorkompilierten Header gehe, was ja eigentlich dann wieder gehen sollte, tut es das nicht mehr, es kommt die Fehlermeldung von vorhin.Das komische: Der Header hat eigentlich nichts mit dem neuen Verzeichnis des Teilprojektes zu tun. in der stdafx.h wird das Teilobjekt mit keinem Wort genannt.
Kann mir wer helfen?
Danke
PS: Ich nutze Visual Studios 2008
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Für das Projekt legt man "Verwende vorkompilierten Header" fest.
Als Header gibt man den Header an, der alle eingebundenen Header enthält.
Entweder nutzt man stafx.h, oder wie ich, Projektname.hpp. Das kann man beliebig machen.
Dann macht man sich eine dummy.cpp und fügt diese ins Projekt ein. Unter Eigenschaften stellt man bei "Vorkompilierte Header" "Erzeuge vorkompilierten Header" fest. Die dummy.cpp sollte am besten schreibgeschützt sein und muss als erstes die Datei inkludieren die als vorkomp. Header festgelegt wurde.
Der vorkompilierte Header muss in jeder Übersetzungseinheit als erstes eingebunden werden.
Dann kompiliert das ohne Probleme normalerweise, auch wenn man was ändert.Beispiel:
Das ist mein Uberheader:
http://code.google.com/p/nightlight2d/source/browse/trunk/NightLightDLL/NightLight.hppDas meine dummy.cpp:
http://code.google.com/p/nightlight2d/source/browse/trunk/NightLightDLL/dummy.cpp
-
Hallo,
Danke für die Antwort.So ist es bei mir auch. Leider will er immer noch, dass der Header immer erstellt wird.