2010-04-26 6 views
43

Ich habe versucht, herauszufinden, dass gd in Boost Bibliotheksname bedeutet und ich nur zwei andere Leute auf der Suche nach dem gleichen Ding.Wie kann ich die Namen der Boost-Bibliothek dekodieren?

Ich vermute, es sollte ein Ort sein, wo dies eindeutig dokumentiert ist und ich es gerne finden würde.

  • mt - Multithread, bekommt es mit bjam threading=multi
  • s-bjam runtime-link=static
  • g - Debug-Versionen der Standard und die Laufzeit-Support-Bibliotheken. was bjam wechseln ???
  • d - debug bjam variant=debug

aktualisieren

Wie steuere ich was bjam Schalter die oben genannten Varianten steuert? Tatsächlich war der einzige, den ich nicht identifizieren konnte, der g.

+0

Haben Sie versucht, google "Boost lib mt gd s sgd Bedeutung". Der erste Link "Boost lib linker Fehler Visual C++ - Stack Overflow" gibt den gleichen Zeiger als die Antwort von Mark. –

+0

Ja, ich habe etwas Ähnliches getan, indem ich 'naming' anstelle von' meaning' verwendet habe und in den ersten 20 Ergebnissen nichts gefunden habe. Die Hilfeseite erklärt die Bedeutung sehr gut, aber sie gibt nicht an, welche bjam-Schalter sie ändern. – sorin

Antwort

47

Siehe Boost getting started windows Abschnitt 6.3 Benennung und section 6.1 on Unix naming

diejenigen, die mit -mt und d behandeln sind

-mt Threading tag: indicates that the library was built with multithreading support enabled. Libraries built without multithreading support can be identified by the absence of `-mt`. 

-d ABI tag: encodes details that affect the library's interoperability with other compiled code. For each such feature, a single letter is added to the tag as listed in this table: 
    Key Use this library when (Boost.Build option) 
    s  linking statically to the C++ standard library 
     and compiler runtime support libraries. 
     (runtime-link=static) 
    g  using debug versions of the standard and runtime support libraries. 
     (runtime-debugging=on) 
    y  using a special debug build of Python. 
     (python-debugging=on) 
    d  building a debug version of your code. 
     (variant=debug) 
    p  using the STLPort standard library rather than 
     the default one supplied with your compiler. 
     (stdlib=stlport) 
+0

Danke, die Hilfe hat mein Problem fast gelöst, jetzt blieb es nur eine Frage: Welcher Schalter schaltet das 'g' aus? – sorin

+1

siehe 5.3.4 - Die Option "--build-type = complete" bewirkt, dass bjam alle unterstützten Varianten der Bibliotheken erstellt. – Mark

+0

Danke, ich bin mir der vollständigen Variante bewusst, aber die Idee war, den Speicherplatz zu minimieren und nur die Dinge zu bauen, die ich brauche/brauche. Glücklicherweise ist der Schalter "g" standardmäßig aktiviert und ich habe den minimalen Build erhalten, nach dem ich gesucht habe. Trotzdem würde ich gerne wissen wie man es deaktivieren kann um das für andere zu dokumentieren. – sorin

0

Das Basis-Set von integrierten Funktionen, die, was Sie auf der Kommandozeile angeben ist (Merkmal = Wert), sind in der BBv2-Dokumentation beschrieben (siehe builtin features). Ich weiß nicht, ob wir den Leitfaden für die ersten Schritte in der kommenden Version 1.43 bereits aktualisiert haben, aber es gibt eine hervorragende Änderung in der Dokumentation, um diese integrierten Optionsbeschreibungen für einen schnelleren Zugriff in die Kurzanleitung einzufügen.

+0

Ich bin ziemlich sicher, dass in 1.43, die Tabelle dieser Schmuckbuchstaben die entsprechende Boost.Build-Funktion enthält. –

10

Von der Boost-Dokumentation bei http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming ist die Konvention:

-mt Threading-Tag: zeigt an, dass die Bibliothek mit Multithreading-Unterstützung aktiviert gebaut wurde. Bibliotheken, die ohne Multithreading-Unterstützung erstellt wurden, können durch das Fehlen von -mt identifiziert werden.

-d ABI-Tag: codiert Details, die sich auf die Interoperabilität der Bibliothek mit anderem kompiliertem Code auswirken. Für jede solche Funktion wird ein einzelner Brief an den Tag hinzugefügt:

 
Key  Use this library when: 
s linking statically to the C++ standard library and compiler runtime support libraries. 
g using debug versions of the standard and runtime support libraries. 
y using a special debug build of Python. 
d building a debug version of your code. 
p using the STLPort standard library rather than the default one supplied with your compiler. 
n using STLPort's deprecated “native iostreams” feature. 

Zum Beispiel, wenn Sie eine Debug-Version des Codes für die Verwendung mit Debug-Versionen der statischen Laufzeitbibliothek und der STLPort Standard-Bibliothek in „bauen native iostreams "-Modus wäre das Tag: -sgdpn. Wenn keine der obigen Bedingungen zutrifft, wird das ABI-Tag weggelassen.