Boost logo

Boost Users :

Subject: Re: [Boost-users] linking to boost 1.54 w/ windows and visual studio 2013 RC
From: Lars Viklund (zao_at_[hidden])
Date: 2013-09-25 02:12:33

On Tue, Sep 24, 2013 at 01:03:50PM -0400, Jarrett Chisholm wrote:
> Hi all
> I'm trying to compile my project as a shared library using scons. I'm
> using Windows 7, and the Visual Studio 2013 RC. In the project, I'm
> using boost.
> The project compiles fine. However, when it tries to link, I get the
> following:
> //LINK : fatal error LNK1104: cannot open file
> 'libboost_log-vc110-mt-1_54.lib'//
> I'm curious why it's trying to link to `libboost_log-vc110-mt-1_54.lib`
> instead of `libboost_log-vc120-mt-1_54.lib`, which is what I specified
> in the link command. Also, as far as I can tell, `vcxxx` is the
> compiler tag boost uses to tell what version of the compiler built the
> boost it's almost like `scons` thinks boost was built using
> Visual Studio 2012, which would be `vc110`...I'm not sure.

With MSVC, Boost.Config offers "autolink" functionality, which
determines the toolset name from the perceived compiler version and
emits #pragma comment(lib,"libboost-blargh.lib") pragmas to make the
linker automagically link the right library.

The problem lies in that 1.54 doesn't really have any awareness of
2013Preview/RC/RTM at all, which means that it'll assume that anything
over 1700 is "vc110".

There are several solutions to this problem:
(a) define BOOST_LIB_TOOLSET to "vc120"
(b) apply the patch from [1] to teach Boost.Config about the compiler
(c) define BOOST_ALL_NO_LIB to inhibit autolinking

In general, there's a lot of fun little hacks that you need to apply to
1.54 and trunk in order to get Boost working much at all with 2013. Some
of them are in [2], and a few of them are applied to trunk Boost.Build
and Boost.


Lars Viklund | zao_at_[hidden]

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at