Повышенная компиляция с MSVC 11 (VS 2012) - PullRequest
27 голосов
/ 21 ноября 2011

Как собрать 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.

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

Ответы [ 6 ]

39 голосов
/ 28 мая 2013

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

  • VS2012 (Visual Studio 2012, обновление 2)
    • или VS2015 (обновление 2 для Visual Studio 2015)
  • 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. Скачать Повышение от 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. См. Две части жирного текста на скриншоте ниже): enter image description here
  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.

32 голосов
/ 22 ноября 2011

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

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

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

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

8 голосов
/ 01 декабря 2013

bootstrap.bat

bjam.exe --toolset = msvc-11

5 голосов
/ 03 марта 2012

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

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

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

0 голосов
/ 05 августа 2014

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

0 голосов
/ 14 июля 2013

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

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

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

...