2012-04-12 4 views
2

Build Basierend auf diesem ausgezeichneten tutorial, ich bin in der Lage, die Boost-Bibliothek ohne Probleme zu bauen. Ich kann jedoch keine PDB-Dateien finden, die generiert werden.Wie Boost-Bibliothek mit PDB-Dateien durch b2

boost_1_49_0> b2 prefix = c: \ temp \ boost1.49 --toolset = msvc-10.0 --build-type = komplette

Da ich LIB und gebaut haben. DLL-Dateien für Boost. Was sollte ich sonst noch tun, um alle entsprechenden pdb generieren zu lassen?

Antwort

6

Von "Built in Features"

Wenn Sie --debug-symbols=on

+0

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

+0

Ich werde es versuchen, während ich etwas anderes hacke. Lass es dich wissen, wenn mir etwas einfällt. – dB8

+0

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

2

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.

Verwandte Themen