How can I decode the boost library naming?

sorin picture sorin · Apr 26, 2010 · Viewed 24.1k times · Source

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.

Answer

mmmmmm picture mmmmmm · Apr 26, 2010

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)