58

I tried to find out that gd means in boost library name and I only found two other people looking for the same thing.

I suppose it should be a place where this is clearly documented and I would like to find it.

  • mt - multitheaded, get it with bjam threading=multi
  • s - bjam runtime-link=static
  • g - using debug versions of the standard and runtime support libraries. what bjam switch???
  • d - debug bjam variant=debug

Update

How do I control what bjam switches controls the above variants? In fact the only one that I wasn't able to identify is the g.

Community
  • 1
  • 1
sorin
  • 161,544
  • 178
  • 535
  • 806
  • Have you tried google "boost lib mt gd s sgd meaning". The first link "Boost lib linker error Visual C++ - Stack Overflow" give the same pointer than the answer from Mark. – Vicente Botet Escriba Apr 26 '10 at 20:04
  • Yes I did with something similar using `naming` instead of `meaning` and I found nothing in the first 20 results. The help page explains the meaning very well but it doesn't specify what bjam switches do change them. – sorin Apr 27 '10 at 08:23

3 Answers3

64

See Boost getting started windows section 6.3 naming and section 6.1 on Unix naming

The ones that deal with -mt and d are

-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)
mmmmmm
  • 32,227
  • 27
  • 88
  • 117
  • Thanks, the help almost solved my issue, now it remained only one question: what bjam switch does trigger the `g`? – sorin Apr 27 '10 at 08:35
  • 2
    see 5.3.4 - The option “--build-type=complete” causes bjam to build all supported variants of the libraries. – mmmmmm Apr 27 '10 at 09:38
  • 1
    Thanks, I am aware about complete variant, but the idea was to minimize the disk space and build only the things I need/want. Fortunately the `g` switch is enabled by default and I obtained the minimal build I was looking for. Still I would like to know how can you disable it in order to document this for others. – sorin Apr 27 '10 at 13:54
  • Updated link: https://www.boost.org/doc/libs/1_70_0/more/getting_started/windows.html#library-naming – Sam Jun 04 '19 at 09:46
12

From the Boost documentation at http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming, the convention is:

-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:

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.

For example, if you build a debug version of your code for use with debug versions of the static runtime library and the STLPort standard library in “native iostreams” mode, the tag would be: -sgdpn. If none of the above apply, the ABI tag is ommitted.

Riot
  • 15,723
  • 4
  • 60
  • 67
0

The basic set of built-in features, which is what you specify on the command line (feature=value), are described in the BBv2 documentation (see builtin features). I don't know if we already updated the getting started guide in the upcoming 1.43 release but there is an outstanding documentation change to add those built-in option descriptions to the getting started guide for quicker access.

GrafikRobot
  • 3,020
  • 1
  • 20
  • 21