-1

I'm upgrading an existing solution from VS2008 to VS2013. We use the boost 1_55 libraries. One project keeps trying to link against a vc110 version of boost; but when I build boost with the VS2013 command line compiler, I get vc120 boost libraries (of course).

My boost auto_link.hpp file has

#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)

     // vc11:
#    define BOOST_LIB_TOOLSET "vc110"

#  elif defined(BOOST_MSVC)

     // vc12:
#    define BOOST_LIB_TOOLSET "vc120"

in it, as recommended at Visual Studio 2013 (vs120) asks for wrong boost libraries; so what else can I try?

Community
  • 1
  • 1
Melanie
  • 1,349
  • 2
  • 17
  • 27
  • Make sure you rebuilt every dependency of your application with Visual Studio 2013. – drescherjm Jul 21 '14 at 02:53
  • You're right - clean rebuild after deleting other versions of boost from the include include directories was the answer. – Melanie Jul 21 '14 at 04:21

1 Answers1

0

I would start by making sure that your application and its dependencies were all rebuilt using Visual Studio 2013. Having any of your applications dependencies built with your previous compiler will cause this if they use boost.

Note: Not only is this important you should always avoid using more than 1 version of Visual Studio in the same application. Having dlls linked to previous versions of Visual Studio can cause random looking heap corruption because in this case you have more than 1 independent heap also there may be other incompatibilities with the CRT.

drescherjm
  • 10,365
  • 5
  • 44
  • 64
  • We have 3 versions of visual studio in the same application. The trick is to separate the project structure from the code base. The problem was linking abainst earlier boost versions, which have the noted bug in auto_link. – Melanie Jul 22 '14 at 00:30