Wie ändern/prüfen der compiler verwendet die von b2 beim kompilieren von Boost?
Da ein problem, wie ähnlich dieser:
Mac OS X-und statische boost-libs -> std::string fail
Nämlich bekomme ich einen run-time error " - Zeiger freigegeben wird, wurde nicht zugeordnet *** setzen Sie einen Haltepunkt in malloc_error_break zu Debuggen, der beim Aufruf der boost-filesystem-directory-iterator-Konstruktor. Mein Eindruck ist, das kann passieren, wenn boost und das Programm kompiliert werden mit verschiedenen Compilern.
So, ich bin versucht zu re-kompilieren, die boost-libs mit dem gleichen compiler ich verwende für meine Programme, nämlich macports gcc (g++-mp-4.8). Basierend auf einige online-Anweisungen, mein Verständnis ist, dass ich die edit-tools/build/v2/user-config.Marmelade, Angabe der compiler, so dass Sie nun sagt:
# Configure gcc (default version).
# using gcc ;
# Configure specific gcc version, giving alternative name to use.
# using gcc : 4.8 : g++-mp-4.8 ;
Ich kopiere die user-config.Marmelade auf mein home-Verzeichnis erneut bootstrap.sh und erneut b2. Aber ich bekomme immer noch mein Fehler, das kommt ("Zeiger freigegeben wird, wurde nicht zugeordnet *** setzen Sie einen Haltepunkt in malloc_error_break debug"). Ist dies die richtige Vorgehensweise bei der Bestimmung der compiler zu kompilieren? Wie kann ich überprüfen, um zu sehen, welche compiler-boost ist eigentlich mit wenn ich b2?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verlassen
user-config.jam
im\boost\tools\build\v2
.Beachten Sie, dass Zeilen, beginnend von
#
sind Kommentare.Die Konfiguration sollte wie folgt Aussehen (unter der Annahme, dass g++ befindet sich in
full/Path/
und benanntg++-mp4.8
):Möglicherweise müssen Sie auch festlegen
<archiver>
und<ranlib>
Optionen zu ermöglichen, zu Steigern.Bauen Auffindenar
undranlib
.Aufrufen dieser Konfiguration
b2
Zeile wie diese:b2 toolset=gcc-macports
Boost.Config
Dokumentation sagt: "Das configure-Skript legt nur die Boost-Header für den Einsatz mit einem bestimmten compiler. Es hat keine Auswirkungen auf Boost.Bauen, oder wie die Bibliotheken aufgebaut sind". 2) Wenn Sie aufrufentoolset=gcc
geht es zu den Standard-gcc-Konfiguration; was Sie eigentlich isttoolset=gcc-4.8
- dieser wäre berufen, den Abschnitt, der beginnt mitusing gcc : 4.8 : g++-mp-4.8 ;