Um ehrlich zu sein, habe ich nie ein solches Problem mit Visual Studio konfrontiert. Ihr CPP sollte ebenfalls neu erstellt werden, wenn es die Kopfzeile enthält. Der einzige Grund, warum ich aufkommen kann: Die gleiche Include-Datei stammt aus 2 verschiedenen Quellen.
Sie können versuchen, dies zur Kompilierzeit zu debuggen, indem Sie den Präprozessor aktivieren, um vorverarbeitete Dateien auszugeben. Klicken Sie auf die CPP-Datei, gehen Sie zu Eigenschaften und dann zu C/C++ -> Preprocessor und wählen Sie in "Generate Preprocessed File" den Eintrag mit oder ohne Zeilennummern.
Zum Sie Datei setzen die Pragmas um den neu hinzugekommenen Definitionen wie umfassen:
#pragma starting_definition_X
...
#pragma ending_definition_X
Jetzt ist alles kompilieren. Es wird eine neu erstellte Datei mit demselben Namen wie CPP aber mit der Erweiterung .I (oder .i) sein.
Machen Sie eine Suche, wenn Ihre Pragmas da sind. Wenn nicht, kommt Ihr Include von einem anderen Ort.
Wenn Sie vorkompilierte Header verwenden, sollten Sie cpp neu erstellen. Es gibt auch eine Pragma-Einmal-Anweisung in MS-VC, die die Include-Datei nur einmal analysiert, aber die cpp-Datei sollte trotzdem noch rekompiliert werden.
Hoffnung, dass
Ovanes
Yeah komplett Wiederaufbau behebt es, aber dauert etwa 40 Minuten. Ich versuche, unbeaufsichtigte Builds auf meinem Computer laufen zu lassen. – danio
@danio: Ich erinnere mich daran, solche Probleme zu haben. In diesem Fall habe ich entweder Visual Studio neu gestartet oder die Wiederherstellung durchgeführt. Warum musst du alles neu aufbauen? Können Sie das Projekt nicht einfach neu aufbauen? – ovanes
@ovanes Ja Wiederaufbau nur das Problem Projekte ist schneller, aber sie herauszufinden kann zeitaufwendig sein. Ich muss die Linker-Fehler entschlüsseln, um herauszufinden, welche Bibliotheken fehlerhaft sind, jede davon neu erstellen, dann die Lösung neu erstellen und hoffen, dass ich sie alle erwischt habe. – danio