Einschließen von PDB-Dateien mit Bibliothekar in Visual Studio

8

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?

    
JBentley 10.01.2013, 21:58
quelle

2 Antworten

6

Die statische Bibliothek wurde wahrscheinlich verschoben, sodass der Compiler die Symbole nicht finden kann. Sie haben mehrere Möglichkeiten:

  • Ändern Sie das Debugging-Format in /Z7 , welches bettet die Debug-Informationen in den Code ein (während /Zi und /ZI legte es in eine separate Datei.
  • Ändern Sie die Ausgabekonfiguration der PDB-Datei (für VS2005 war es 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 .

    
Synxis 11.01.2013, 10:26
quelle
0

Gehe zu den Eigenschaftsseiten (Alt + F7) Linker, Alle Optionen, Erzeuge Debug-Info auf Keine Position setzen

    
user4089791 29.09.2014 04:03
quelle