Boost logo

Boost Users :

Subject: Re: [Boost-users] boost_thread-vc100-mt-1_53.lib vs libboost_thread-vc100-mt-1_53.lib
From: Lars Viklund (zao_at_[hidden])
Date: 2013-04-12 11:16:56


On Fri, Apr 12, 2013 at 07:47:05AM -0700, Steven Watanabe wrote:
> AMDG
>
> On 04/12/2013 07:23 AM, young wrote:
> > Still not clear.
> >
> > libboost_thread-vc100-mt-s-1_53.lib vs libboost_thread-vc100-mt-1_53.lib
> >
> > I know the "s" means static library. What is different between them?
> >
>
> "s" means that it links to the static runtime (/MT). See
> http://www.boost.org/more/getting_started/windows.html#library-naming

There are two very different parts of the filename pertaining to "static
linking".

One is about whether the library is a static library or an import
library for a DLL.
Filenames beginning with "libboost" are static libraries.
Filenames beginning with "boost" are import libraries for DLLs.

The other is about what kind of VC++ runtime (CRT) the library is built
against, the static runtime (LIBCMT/LIBCMTD) or the DLL runtime
(MSVCR*.DLL and whatever the debug version is called).
Filenames with "s" in the middle are using the static runtime.
Filenames without "s" are using the DLL runtime.

Note that these are very different concerns, and the autolinker decides
which one to used based on the settings and default settings your
Boost code has. If the autolinker expects a particular name, you need to
either build your Boost in a way that you get such a library, or change
the autolinker configuration macros so that it wants a different kind.

As shown in Watanabe's link, the B2 feature to control static/dynamic
Boost is link=, and the feature to control static/dynamic runtime is
runtime-link=.

-- 
Lars Viklund | zao_at_[hidden]

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net