2015-12-14 2 views
5

MSVS 2013: Ich habe das VC-Projekt und den C++ - Code einer statischen Bibliothek, die ich aus meinem EXE-Projekt herausholen möchte, das in derselben Lösung gefunden wird. Der Debugger sagt mir jedoch immer wieder, dass er die Breakpoints nicht erreichen würde, da er entsprechende Debugging-Symbole für die statische Bibliothek nicht laden könnte ("Der Breakpoint wird momentan nicht getroffen. Für dieses Dokument wurden keine Symbole geladen "). Andere statische Bibliotheken in derselben Lösung funktionieren. Ich habe gerade erst das neue hinzugefügt, da ich etwas Code eingeben wollte, um zu sehen, was schief läuft. Ich habe eine Build-Abhängigkeit von exe zu lib project hinzugefügt, keine Ahnung, ob dies irgendeinen Effekt hat, aber ich dachte, es könnte nicht schaden. Ich habe auch versucht, zu reinigen und wieder aufzubauen. Was könnte ein Hinweis sein und was ich nicht bekomme: Warum versucht VS, Debug-Symbole an erster Stelle zu laden, wenn es den Quellcode hat?msvc "der Haltepunkt wird derzeit nicht erreicht"

Lustig ist, ich habe eine andere Lösung, auch mit dem gleichen statischen Lib-Projekt, da es funktioniert, so scheint das Problem nicht eine durcheinander gesetzte Einstellung in der Lib-Projekt. Ich habe alle Linker und Compiler-Einstellungen beider EXE-Projekte verglichen und finde keine verdächtigen Unterschiede.

Alle Ideen, was das Problem sein würde, werden sehr geschätzt.

Antwort

3

Es gibt mehrere mögliche Gründe:

  1. Die Funktion Sie Breakpoint gesetzt wurde inlined (überprüfen Sie Ihre Link-Zeitoptimierungsflags /LTCG und deaktivieren Sie alle)
  2. Sie gebaut Ihrer Bibliothek ohne Debug-Informationen (überprüfen Sie die /DEBUG Flag)
  3. Wenn das Debugger Visual Studio Anbringen nicht das finden die .pdb Datei, um die Debug-Informationen enthält (dies erzeugt eine Warnung im Ausgabefenster)
  4. Die obigen Compiler und Linker-Optionen nicht übereinstimmen

Versuchen Sie, die folgenden (Sie Warnungen in diesem Fall sehen sollten): Verwenden Sie die Standard-Debug-Build sowohl für die statische Bibliothek und das ausführbare Projekt, das Sie laufen lassen. Verweisen Sie das Bibliotheksprojekt in Ihrem ausführbaren Projekt und fügen Sie die Bibliothek explizit zu Linker-> Eingabe-> Zusätzliche Abhängigkeiten hinzu.

+0

Sie hatten Recht mit 4 - Ich habe die Warnung verpasst. Ich hatte $ (SolutionDir) als ein Makro im Ausgabeverzeichnis, was zu einem korrekten Ausgabeverzeichnis in der einen Lösung führte, aber zu einem falschen in der anderen Lösung, so dass die in den Linkereinstellungen angegebene lib nicht die von a erzeugte war bauen. VIELEN DANK!!! – iko79