Probleme beim Löschen von Klassen in Visual Studio 2008



  • Hallo,

    ich wollte schon seit einiger Zeit überfällige/nicht mehr verwendete Klassen aus meinem Projekt entfernen, allerdings gibt es Probleme, die Klasse taucht immer wieder bei der Kompilierung auf. Auch wenn ich die Klassendateien aus dem Projektmappen-Explorer entferne, werden sie definitiv mitkompiliert (absichtliche Fehler im Code werden angezeigt)! Wie kann ich bei Visual Studio 2008 eine Klasse entgültig löschen, so dass nichts mehr von ihr übrigbleibt, auch keine Querverweise oder ähnliches? Ich habe vor dem Kompilieren bereits auf "Clean Solution" geklickt.

    Viele Grüße & Danke schonmal im voraus!

    beinando



  • "Clean Solution" bedeutet lediglich, dass die temporären Objekt-Dateien (.obj), die der Compiler beim Buildvorgang aus deinen Quell-Dateien (.cpp) erzeugt, abgeräumt werden. Diese werden dann beim nächsten Buildvorgang einfach neu erzeugt.

    Also: In C++ gibt es ja erstmal nichts was dich zwingen würde jede Klasse in eine separate Datei zu speichern. Dennoch ist es zumindest üblich je ein Quell-Datei (.cpp) und eine zugehörige Header-Datei (.h) pro Klasse anzulegen. Falls Du genau so gearbeitet hast, dann (und nur dann) genügt es die entsprechenden** .cpp Files aus deinem MSVC Projekt zu entfernen, damit diese Klassen nicht mehr mit kompiliert werden. Alternative kannst Du auch die Option "Exclude From Build" für diese Dateien setzen. Natürlich können dann immer noch #include 's in anderen Quell- bzw Header-Dateien existieren, die weiterhin auf die Header-Dateien der nicht mehr benötigten Klassen verweisen! Diese #include **'s, sofern vorhanden, müsstest Du natürlich ebenfalls aus den entsprechenden Dateien raus werfen.

    Am besten löschst Du einfach alle nicht mehr benötigten** .cpp und .h **Dateien komplett. Also nicht nur aus dem MSVC Projekt entfernen, sondern im Explorer die Dateien wirklich löschen. Falls diese Dateien noch irgendwo referenziert wurden, bekommst Du beim nächsten Buildvorgang eine entsprechende Fehlermeldung und kannst das Problem dann Schritt für Schritt beheben...



  • Vielleicht hast Du die Header noch in irgendwelchen Quellen includet?
    Edit: Ups, das hat ja mein Vorschreiber schon erwähnt.


Log in to reply