Boost compiling with MSVC 11 (VS 2012)

放肆的年华 提交于 2019-11-29 19:27:34

I managed to get it to build by following these steps:

  1. Open a Visual Studio command prompt. From the start menu it's: All Programs|Microsoft Visual Studio 11|Native x64 Command Prompt.
  2. Unzip boost_1_48_0.zip and set the working directory to boost_1_48_0
  3. run bootstrap.bat
  4. run bjam.exe

It does generate a lot of warnings about not being able to detect the toolkit version, but it proceeds anyway.

Update: I created GitHub repo called cclibs which makes it simpler to build Boost and some other C++ libraries.

Contango

This answer works beautifully for:

  • VS2012 (Visual Studio 2012 Update 2)
    • or VS2015 (Visual Studio 2015 Update 2)
  • Windows 7 x64
    • or Windows 10 x64
  • Boost v1.53
    • or Boost v1.60

In a nutshell

  1. Open a Visual Studio 2012 command prompt. From the start menu its: All Programs..Microsoft Visual Studio 2012..Visual Studio Tools..x64 Native Tools Command Prompt.
  2. Unzip boost_1_53_0.zip to C:\boost153.
  3. run bootstrap.bat
  4. run bjam.exe
  5. In any new C++ project, include the path to the Boost libraries, as per the screenshot below.

(optional) Step-by-Step Instructions

  1. Install Visual Studio 2012.
  2. Install Update 2.
  3. Download Boost from SourceForge.
  4. Unzip into "C:\boost153"
  5. Open a Visual Studio Command prompt with Administrator privileges. From the start menu, its All Programs..Microsoft Visual Studio 2012..Visual Studio Tools..x64 Native Tools Command Prompt.
  6. Change to the boost directory with cd c:\boost153.
  7. Run bootstrap.bat.
  8. Run bjam.exe. This builds all of the libraries.
  9. There may be some warnings, but you can ignore these.
  10. When it has finished compiling after about 5 minutes, it states:

    The Boost C++ Libraries were successfully built!
    The following directory should be added to compiler include paths:
       C:/boost153
    The following directory should be added to linker library paths:
       C:\boost153\stage\lib
    
  11. This is important, we will need to add these two paths to any new C++ project.

  12. Create a new C++ project.
  13. As noted a couple of steps ago, add C:/boost153 to the compiler include path and C:\boost153\stage\lib to the linker library path.
  14. Right click on the project, select Properties, select Configuration Properties..VC++ Directories. See the two portions of bolded text in the screenshot below):

  15. Let's run a simple program that shows off the power of boost, by adding support for foreach loops:

    // Source code below copied from:   
    // http://www.boost.org/doc/libs/1_53_0/doc/html/foreach.html
    #include "stdafx.h"
    
    #include <string>
    #include <iostream>
    #include <conio.h> // Supports _getch()
    #include <boost/foreach.hpp>
    
    int main()
    {
        std::string hello( "Hello, world!" );
    
        BOOST_FOREACH( char ch, hello )
        {
            std::cout << ch;
        }
    
        _getch();
        return 0;
    }
    
  16. Result:

    Hello, world!
    

More Answers

Update 2016-05-05

Checked with Win10 x64 + VS2015.2 + Boost v1.6.0.

bootstrap.bat

bjam.exe --toolset=msvc-11

Check that your installation is correct by confirming the output of the following command:

C:\>echo %VS110COMNTOOLS%
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\

Here's some simple instructions to follow to get rid of warnings when bootstrapping: http://landoftheninja.blogspot.com/2011/11/visual-c-11-and-boost.html

Don't miss his follow-up post that deals with the automatic linking.

vs2012 ERROR: Cannot determine the location of the VS Common Tools folder.

vcvarsall.bat need call a "reg.exe" which in "C:\windows\system32\". if not in search path,will cause this error.

Add C:\windows\system32 to %PATH% will solved the problem.

In addition to above answers, I find BlueGo really helpful for building boost versions with MSVC 10/11/12. You can select different configurations and just select build, and it does the trick.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!