BOOST libraries in multithreading-aware mode BOOST libraries in multithreading-aware mode multithreading multithreading

BOOST libraries in multithreading-aware mode


Because you did not specify how you have built, and on what platform, I'll explain the whole story. Both on Linux and Windows, Boost.Thread library is built in MT mode. On Windows, by default, you get -mt suffix for it. On Linux, by default in 1.42, you get no suffix. The reason you get no suffix on Linux is that pretty much no other library uses such convention, and it's much less important on Linux anyway.

Does this clarify things?


There is an option to put "-mt" suffix back (bjam --layout=tagged)

--layout=<layout>     Determines whether to choose library names                      and header locations such that multiple                      versions of Boost or multiple compilers can                      be used on the same system.                          versioned - Names of boost binaries                          include the Boost version number, name and                          version of the compiler and encoded build                          properties.  Boost headers are installed in a                          subdirectory of <HDRDIR> whose name contains                          the Boost version number.                          tagged -- Names of boost binaries include the                          encoded build properties such as variant and                          threading, but do not including compiler name                          and version, or Boost version. This option is                          useful if you build several variants of Boost,                          using the same compiler.                          system - Binaries names do not include the                          Boost version number or the name and version                          number of the compiler.  Boost headers are                          installed directly into <HDRDIR>.  This option                          is intended for system integrators who are                          building distribution packages.                      The default value is 'versioned' on Windows, and                      'system' on Unix.


MT enables multithreaded support in the boost libraries meaning you are safe to use them in your multithreaded programs (at least from the library's internal code point of view).

And indeed building the threads library in the "no threads" mode does not make any sense but I was under the impression that that specific build target is disabled.

Check these out

http://sodium.resophonic.com/boost-cmake/current-docs/build_variants.html

http://www.boost.org/doc/libs/1_41_0/more/getting_started/windows.html#library-naming