Ich habe ein Projekt, dessen Ausgabe eine Bibliothek (.lib) ist. Das Projekt hängt von einer Drittanbieterbibliothek (auch einer .lib) ab. Um zu vermeiden, dass Projekte, die auf meiner Bibliothek aufbauen, sich um diese Drittanbieterabhängigkeit sorgen müssen, habe ich den Bibliothekar verwendet, um ihn in meinen einzubinden (Projekteigenschaften & gt; Bibliothekar & gt; Allgemein & gt; Zusätzliche Abhängigkeiten).
Wenn ich jedoch ein separates ausführbares Projekt erstelle, das mit meiner Bibliothek verknüpft ist, erhalte ich eine Reihe von Warnungen wie folgt:
MyProject.lib (someThirdPartyObjectFile.obj): Warnung LNK4099: PDB 'vc110.pdb' wurde nicht mit 'MyProject.lib (someThirdPartyObjectFile.obj)' oder unter '\ vc110.pdb' gefunden; Verknüpfen von Objekt als ob keine Debug-Informationen
Dies bedeutet (ich nehme an), dass ich in der Lage sein werde, jeden Code zu debuggen, der zu meiner Bibliothek gehört, aber nicht zu der Third-Party-Bibliothek.
Wie kann ich Visual Studio anweisen, auch den Inhalt der PDB der Drittanbieterbibliothek in meinen zu integrieren?
Die statische Bibliothek wurde wahrscheinlich verschoben, sodass der Compiler die Symbole nicht finden kann. Sie haben mehrere Möglichkeiten:
/Z7
, welches bettet die Debug-Informationen in den Code ein (während /Zi
und /ZI
legte es in eine separate Datei. Settings > C++ > Output Files > Program Database File Name
, wahrscheinlich ähnlich in VS2010). Weitere Informationen finden Sie hier und < a href="https://stackoverflow.com/questions/7575298/static-library-debug-symbols"> hier .
Gehe zu den Eigenschaftsseiten (Alt + F7) Linker, Alle Optionen, Erzeuge Debug-Info auf Keine Position setzen
Tags und Links c++ visual-studio debugging libraries