summaryrefslogtreecommitdiff
path: root/more/getting_started/detail/library-naming.rst
blob: 63854ab39801cdd9675ce33168c51272c18c048e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
.. Copyright David Abrahams 2006. Distributed under the Boost
.. Software License, Version 1.0. (See accompanying
.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

In order to choose the right binary for your build configuration
you need to know how Boost binaries are named.  Each library
filename is composed of a common sequence of elements that describe
how it was built.  For example,
``libboost_regex-vc71-mt-d-1_34.lib`` can be broken down into the
following elements:

``lib`` 
  *Prefix*: except on Microsoft Windows, every Boost library
  name begins with this string.  On Windows, only ordinary static
  libraries use the ``lib`` prefix; import libraries and DLLs do
  not. [#distinct]_

``boost_regex``
  *Library name*: all boost library filenames begin with ``boost_``.

``-vc71``
   *Toolset tag*: identifies the toolset_ and version used to build
   the binary.

``-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:                                                        |Boost.Build option   |
     +=====+==============================================================================+=====================+
     |``s``|linking statically to the C++ standard library and compiler runtime support   |runtime-link=static  |
     |     |libraries.                                                                    |                     |
     +-----+------------------------------------------------------------------------------+---------------------+
     |``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. [#debug-abi]_                          |variant=debug        |
     +-----+------------------------------------------------------------------------------+---------------------+
     |``p``|using the STLPort standard library rather than the default one supplied with  |stdlib=stlport       |
     |     |your compiler.                                                                |                     |
     +-----+------------------------------------------------------------------------------+---------------------+

   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.

``-1_34``
  *Version tag*: the full Boost release number, with periods
  replaced by underscores. For example, version 1.31.1 would be
  tagged as "-1_31_1".

``.lib``
  *Extension*: determined according to the operating system's usual
  convention.  On most unix-style platforms the extensions are
  ``.a`` and ``.so`` for static libraries (archives) and shared
  libraries, respectively.  On Windows, ``.dll`` indicates a shared
  library and ``.lib`` indicates a
  static or import library.  Where supported by toolsets on unix
  variants, a full version extension is added (e.g. ".so.1.34") and
  a symbolic link to the library file, named without the trailing
  version number, will also be created.

.. .. _Boost.Build toolset names: toolset-name_

__ ../../libs/python/doc/building.html#variants