Повышение компиляции с MSVC 11 (VS 2012)

Как собрать Boost (я пробовал версию 1.48.0) с Visual Studio C++ 11? bootstrap.bat не могу найти набор инструментов vc11, Я добавил набор инструментов vc11 в F:\Programming\boost_1_48_0\tools\build\v2\engine\build.bat но получил сообщение:

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

РЕДАКТИРОВАТЬ: Ответ Ferruccio работает для VS 2012 Express и Boost 1.51.0 тоже.

6 ответов

Решение

Мне удалось собрать его, выполнив следующие действия:

  1. Откройте командную строку Visual Studio. Из меню "Пуск" это: Все программы |Microsoft Visual Studio 11| Собственная командная строка x64.
  2. Разархивируйте boost_1_48_0.zip и установите рабочий каталог boost_1_48_0
  3. запустить bootstrap.bat
  4. запустить bjam.exe

Он генерирует много предупреждений о невозможности определить версию инструментария, но все равно работает.

Обновление: я создал репозиторий GitHub под названием cclibs, который упрощает сборку Boost и некоторых других библиотек C++.

Этот ответ прекрасно работает для:

  • VS2012 (Visual Studio 2012, обновление 2)
    • или же VS2015 (Visual Studio 2015, обновление 2)
  • Windows 7 x64
    • или Windows 10 x64
  • Boost v1.53
    • или Boost v1.60

В двух словах

  1. Откройте командную строку Visual Studio 2012. Из меню Пуск его: All Programs..Microsoft Visual Studio 2012..Visual Studio Tools..x64 Native Tools Command Prompt,
  2. расстегнуть молнию boost_1_53_0.zip в C:\boost153,
  3. бежать bootstrap.bat
  4. бежать bjam.exe
  5. В любом новом проекте C++ укажите путь к библиотекам Boost, как показано на скриншоте ниже.

(необязательно) Пошаговые инструкции

  1. Установите Visual Studio 2012.
  2. Установить обновление 2.
  3. Загрузите Boost с SourceForge.
  4. Разархивируйте в "C:\boost153"
  5. Откройте командную строку Visual Studio с правами администратора. Из меню "Пуск" его All Programs..Microsoft Visual Studio 2012..Visual Studio Tools..x64 Native Tools Command Prompt,
  6. Перейдите в каталог boost с помощью cd c:\boost153,
  7. Бежать bootstrap.bat,
  8. Бежать bjam.exe, Это создает все библиотеки.
  9. Там могут быть некоторые предупреждения, но вы можете игнорировать их.
  10. Когда он завершает компиляцию примерно через 5 минут, он заявляет:

    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. Это важно, нам нужно будет добавить эти два пути в любой новый проект C++.

  12. Создайте новый проект C++.
  13. Как отмечалось пару шагов назад, добавьте C:/boost153 к compiler include path а также C:\boost153\stage\lib к linker library path,
  14. Щелкните правой кнопкой мыши на проекте, выберите Properties, Выбрать Configuration Properties..VC++ Directories, Смотрите две части выделенного текста на скриншоте ниже):
  15. Давайте запустим простую программу, которая демонстрирует силу наддува, добавив поддержку foreach петли:

    // 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. Результат:

    Hello, world!
    

Больше ответов

Обновление 2016-05-05

Проверено с Win10 x64 + VS2015.2 + Boost v1.6.0,

bootstrap.bat

bjam.exe --toolset = msvc-11

Проверьте правильность установки, подтвердив вывод следующей команды:

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

Вот несколько простых инструкций, которым нужно следовать, чтобы избавиться от предупреждений при начальной загрузке: http://landoftheninja.blogspot.com/2011/11/visual-c-11-and-boost.html

Не пропустите его пост, посвященный автоматическим ссылкам.

vs2012 ОШИБКА: невозможно определить местоположение папки VS Common Tools.

vcvarsall.bat нужно вызвать "reg.exe", который находится в "C:\windows\system32 \". если не в пути поиска, вызовет эту ошибку.

Добавление C:\windows\system32 в%PATH% решит проблему.

В дополнение к ответам, приведенным выше, я считаю, что BlueGo действительно полезен для создания улучшенных версий с MSVC 10/11/12. Вы можете выбрать различные конфигурации и просто выбрать сборку, и это делает свое дело.

Другие вопросы по тегам