Thanks Lars Yeah, eventually I checked out boost trunk (1.55), compiled, and it all linked properly in my application. I think I'll just use 1.55 in my windows version of my app :) Cheers Jarrett On 25/09/13 02:12 AM, Lars Viklund 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 library...so 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
On Tue, Sep 24, 2013 at 01:03:50PM -0400, Jarrett Chisholm wrote: 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.
[1] https://svn.boost.org/trac/boost/attachment/ticket/8753/0001-Boost.Config-ad... [2] http://lists.boost.org/Archives/boost/2013/07/204953.php