2010-04-26 13 views
43

Intenté descubrir que gd significa en el nombre de la biblioteca de impulso y solo encontré a otras dos personas que buscaban lo mismo.¿Cómo puedo decodificar la nomenclatura de la biblioteca de impulso?

Supongo que debería ser un lugar donde esto esté claramente documentado y me gustaría encontrarlo.

  • mt - multitheaded, conseguirlo con bjam threading=multi
  • s - bjam runtime-link=static
  • g - el uso de versiones de depuración de las bibliotecas de soporte estándar y en tiempo de ejecución. ¿qué interruptor de bjam?
  • d - depuración bjam variant=debug

actualización

¿Cómo puedo controlar lo que bjam interruptores controla las variantes anteriores? De hecho, el único que no pude identificar es el g.

+0

Has probado google "boost lib mt gd s sgd meaning". El primer enlace "Boost lib error del enlazador Visual C++ - Stack Overflow" da el mismo puntero que la respuesta de Mark. –

+0

Sí, lo hice con algo similar al usar 'naming' en lugar de' meaning' y no encontré nada en los primeros 20 resultados. La página de ayuda explica muy bien el significado pero no especifica qué interruptores bjam los cambian. – sorin

Respuesta

47

Ver Boost getting started windows sección 6.3 denominación y section 6.1 on Unix naming

Los que se ocupan de -mt y D son

-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

Gracias, la ayuda casi resolvió mi problema, ahora solo quedaba una pregunta: ¿qué interruptor bjam dispara la 'g'? – sorin

+1

ver 5.3.4 - La opción "--build-type = complete" hace que bjam cree todas las variantes admitidas de las bibliotecas. – Mark

+0

Gracias, conozco la variante completa, pero la idea era minimizar el espacio en disco y construir solo las cosas que necesito/quiero. Afortunadamente, el interruptor 'g' está habilitado por defecto y obtuve la construcción mínima que estaba buscando. De todos modos, me gustaría saber cómo puedes desactivarlo para documentar esto para otros. – sorin

0

El conjunto básico de funciones integradas, que es lo que se especifica en la línea de comandos (función = valor), se describen en la documentación de BBv2 (consulte builtin features). No sé si ya actualizamos la guía de introducción en la próxima versión 1.43, pero hay un cambio importante en la documentación para agregar esas descripciones de las opciones integradas a la guía de introducción para un acceso más rápido.

+0

Estoy bastante seguro de que en 1.43, la tabla de esas letras de decoración incluye la característica Boost.Build correspondiente. –

10

De la documentación Boost en http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming, la convención es:

-mt etiqueta de roscado: indica que la biblioteca fue construida con multihilo habilitado el soporte. Las bibliotecas construidas sin soporte multihilo pueden identificarse por la ausencia de -mt.

-d Etiqueta ABI: codifica los detalles que afectan a la interoperabilidad de la biblioteca con otro código compilado. Para cada una de estas características, se añade una letra a la etiqueta:

 
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. 

Por ejemplo, si se construye una versión de depuración de su código para su uso con versiones de depuración de la biblioteca de ejecución estática y la biblioteca estándar STLport en “ modo iostreams nativos, la etiqueta sería: -sgdpn. Si no se aplica ninguna de las opciones anteriores, la etiqueta ABI se omite.

Cuestiones relacionadas