Boost logo

Boost-Build :

Subject: Re: [Boost-build] Building and Installing Shared Boost Libraries on Windows
From: Andrey Sklyar (andrey_at_[hidden])
Date: 2016-02-08 05:05:14


> It seems that when you're building your application, you are not
> requesting DLL linking. What's your
> command line? I think you need to have either /MD or /MDd option on the
> command line, or select same
> under VS project properties (C/C++ -> Code Generation -> Runtime Library)

The variable that needs to be defined is "BOOST_ALL_DYN_LINK". I
actually had /MDd already set. Thanks for pointing me on the right track.
Here's the resolution (the nesting represents an included file).

#include <boost/filesystem.hpp>

  # include <boost/filesystem/config.hpp>

    // If we're importing code from a dll, then tell auto_link.hpp about it:
    # define BOOST_DYN_LINK
    // And include the header that does the work:
    #include <boost/config/auto_link.hpp>


      BOOST_DYN_LINK: Optional: when set link to dll rather than
static library.
      BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".

      // select linkage opt:
      #if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
      # define BOOST_LIB_PREFIX
      #elif defined(BOOST_DYN_LINK)
      # error "Mixing a dll boost library with a static runtime is a
really bad idea..."
      # define BOOST_LIB_PREFIX "lib"

> Unlike other build systems, install is not special-cased in Boost.Build,
> so you can just specify desired properties
> when building the 'install' target, e.g.:
> .\b2 --build-dir=%BUILD_DIR% architecture=x86 address-model=64
> runtime-link=shared threading=multi link=shared variant=debug install

Great! Will give this a try.

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at