Sie mit b2 versuchen aufrufen können PDBS für statische Bibliotheken direkt in dem notwendigen Verzeichnis bauen (was für den Debugger erforderlich sein kann) durch ein wenig Gefummel von msvc.jam . Finden rule archive
dort und ändern
PDB_NAME on $(>) = $(<[1]:S=.pdb) ;
zum Beispiel:
PDB_NAME on $(>) = "c:\\Lib\\boost\\stage\\lib\\$(<[1]:S=.pdb:G=)" ;
(Disclaimer: Ich habe nur eine vage Vorstellung davon, was das kryptische Ausdruck bedeutet, es überall dokumentiert nie gesehen, es ist eine reine Spekulation war auf dem Teil, also keine Garantien, aber es funktioniert für mich).
PDBs für DLLs werden vom Linker erstellt, so dass Sie seine Option z. project-config.jam:
import toolset ;
using msvc ;
toolset.flags msvc.link LINKFLAGS <link>shared : "/PDB:c:\\Lib\\boost\\stage\\lib\\" : unchecked ;
Ich bin sicher, dass es eine Möglichkeit gibt, das Ausgabeverzeichnis vom System automatisch zu bekommen. Wenn jemand das herausfindet, bitte update.
Ich habe den folgenden Befehl versucht 'b2 --toolset = msvc-10.0 --build-type = complete debug-symbols = auf debug-store = database'. Nach dem Bau werden PDBs jedoch nicht in einen bestimmten Ordner kopiert? Warum? – q0987
Ich werde es versuchen, während ich etwas anderes hacke. Lass es dich wissen, wenn mir etwas einfällt. – dB8
Es scheint, dass pdb während des Builds erstellt wird, aber sie werden nicht von den Build-Verzeichnissen kopiert. Sie können im Build-Verzeichnis nach * .pdb suchen und alle relevanten pdbs in das Präfix \ lib-Verzeichnis kopieren. (Ich gehe davon aus, dass sie korrekt und kompatibel mit den kompilierten Bibliotheken sind, obwohl das eine falsche Annahme sein könnte.) Um sie während des normalen Ablaufs der Instillation zu kopieren, würde eine große Veränderung der b2-Konfigurationsdateien erfordern. – dB8