2010-04-26 6 views
43

J'ai essayé de trouver que gd signifie dans le nom de la bibliothèque boost et j'ai seulement trouvé deux autres personnes qui cherchent la même chose. Je suppose que ce devrait être un endroit où cela est clairement documenté et je voudrais le trouver.Comment puis-je décoder le nom de la bibliothèque boost?

  • mt - multitheaded, obtenir avec bjam threading=multi
  • s-bjam runtime-link=static
  • g - en utilisant des versions de débogage des standards et des bibliothèques de support d'exécution. quel commutateur de bjam?
  • d - debug bjam variant=debug

Mise à jour

Comment puis-je contrôler ce que bjam commutateurs contrôle les variantes ci-dessus? En fait, le seul que je n'ai pas pu identifier est le g.

+0

Avez-vous essayé google "boost lib mt gd s sgd sens". Le premier lien "Boost lib erreur de lien Visual C++ - Stack Overflow" donne le même pointeur que la réponse de Mark. –

+0

Oui, je l'ai fait avec quelque chose de similaire en utilisant «nom» au lieu de «sens» et je n'ai rien trouvé dans les 20 premiers résultats. La page d'aide explique très bien la signification mais elle ne précise pas quels commutateurs bjam les modifient. – sorin

Répondre

47

Voir Boost getting started windows section 6.3 nommage et section 6.1 on Unix naming

Ceux qui traitent de -MT et d sont

-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

Merci, l'aide a presque résolu mon problème, maintenant il ne restait qu'une seule question: quel commutateur bjam déclenche le 'g'? – sorin

+1

voir 5.3.4 - L'option "--build-type = complete" amène bjam à construire toutes les variantes supportées des bibliothèques. – Mark

+0

Merci, je suis au courant de la variante complète, mais l'idée était de minimiser l'espace disque et de ne construire que les choses dont j'ai besoin. Heureusement, le commutateur 'g' est activé par défaut et j'ai obtenu la version minimale que je cherchais. Pourtant, je voudrais savoir comment pouvez-vous le désactiver afin de documenter cela pour les autres. – sorin

0

L'ensemble de base de fonctionnalités intégrées, qui est ce que vous spécifiez sur la ligne de commande (feature = value), sont décrits dans la documentation BBv2 (voir builtin features). Je ne sais pas si nous avons déjà mis à jour le guide de démarrage dans la version 1.43 à venir, mais il y a une modification de documentation exceptionnelle pour ajouter ces descriptions d'options intégrées au guide de démarrage pour un accès plus rapide.

+0

Je suis assez sûr que dans 1.43, la table de ces lettres de décoration inclut la fonction Boost.Build correspondante. –

10

De la documentation Boost à http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming, la convention est:

-MT tag Threading: indique que la bibliothèque a été construite avec le soutien multithreading activé. Les bibliothèques construites sans support multithread peuvent être identifiées par l'absence de -mt. Balise ABI: code les détails qui affectent l'interopérabilité de la bibliothèque avec d'autres codes compilés.

-d Pour chacune de ces caractéristiques, une seule lettre est ajouté à la balise:

 
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. 

Par exemple, si vous construisez une version de débogage de votre code pour être utilisé avec les versions de débogage de la bibliothèque d'exécution statique et la bibliothèque standard STLPort dans « mode natif iostreams ", le tag serait: -sgdpn. Si aucune des conditions ci-dessus ne s'applique, l'étiquette ABI est omise.

Questions connexes