Подтвердить что ты не робот

Повысьте производительность с помощью msvc 14.1 (VS2017 RC)

Я пытаюсь создать boost 1.63 с последними версиями msvc 14.1 и VS2017 RC. Поэтому я сделал все, что делал нормально, я открыл Cmd разработки, а затем запустил bootstrap.bat и запустил команду

b2 -link=static -threading=multi

По какой-то причине я получил эти ошибки:

E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:834: in generate-setup-cmd
*** argument error
* rule maybe-rewrite-setup ( toolset : setup-script : setup-options : version : rewrite-setup ? )
* called with: ( msvc :  :  : default :  )
* missing argument setup-script
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:746:see definition of rule 'maybe-rewrite-setup' being called
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:1076: in configure-really
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:201: in configure
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:153: in msvc.init
E:/Coding/SDKs/boost_1_63_0/tools/build/src/build\toolset.jam:43: in toolset.using
E:/Coding/SDKs/boost_1_63_0/tools/build/src/build\project.jam:1052: in using
project-config.jam:3: in modules.load
E:/Coding/SDKs/boost_1_63_0/tools/build/src\build-system.jam:249: in load-config
E:/Coding/SDKs/boost_1_63_0/tools/build/src\build-system.jam:412: in load-configuration-files
E:/Coding/SDKs/boost_1_63_0/tools/build/src\build-system.jam:524: in load
E:\Coding\SDKs\boost_1_63_0\tools\build\src/kernel\modules.jam:295: in import
E:\Coding\SDKs\boost_1_63_0\tools\build\src/kernel/bootstrap.jam:139: in boost-build
E:\Coding\SDKs\boost_1_63_0\boost-build.jam:17: in module scope

Я не знаком с повышением, поэтому, возможно, один из вас мог бы дать мне подсказку

4b9b3361

Ответ 1

На основе ответов KindDragons и CPlusPlus OOA и D я собрал Boost 1.63. Для 64-битного. Запустите "Командная строка 64-разрядной командной строки для VS 2017":

1) Запуск: bootstrap.bat

2) открыть project-config.jam. Вот мой:

import option ; 

using msvc : 14.0 : "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe"; 

option.set keep-going : false ;

Часть: 14.10.25017 постоянно меняется с обновлениями к вашему SDK Windows. Поэтому обновите его соответствующим образом.

3) Запустите b2 toolset=msvc-14.0 address-model=64

Ответ 2

Boost 1.63 полностью не поддерживает VS2017, но вы можете обмануть его, чтобы найти компилятор VС++ 2017:

  • Запустите bootstrap.bat в каталоге boost
  • Обновите проект-config.jam, чтобы включить: using msvc : 14.0 : <path to x86 or x64 cl.exe>. Должно быть что-то вроде "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.24911\bin\HostX64\x64\cl.exe"
  • Запустите команду "Командная строка разработчика для VS 2017 RC" из меню "Пуск" Windows, чтобы активировать оболочку, настроенную с использованием vcvars x86 или x64 vcvars.
  • Запустите b2 toolset=msvc-14.0 в этой командной строке. Для сборки x64 добавьте address-model=64 в командную строку b2.

UPDATE: Boost 1.64 должен поддерживать VS2017

Запустите "Командная строка x86 для командной строки VS86 для VS 2017" или "Командная строка x64 для VS 2017" из меню "Пуск", чем внутри командной строки b2:

32-бит: b2 toolset=msvc-14.1 --build-dir=.x86 --stagedir=stage_x86

64-бит: b2 toolset=msvc-14.1 address-model=64 --build-dir=.x64 --stagedir=stage_x64

Добавить link=shared для создания разделяемых библиотек

Ответ 3

Я создал пакетный скрипт, который создает двоичные файлы 32 и 64 битов в следующем репозитории github: https://github.com/manuelgustavo/boost_build

Секрет заключается в использовании командной строки Visual Studio 2017 Developer Command Prompt. Он устанавливает все переменные среды по мере необходимости.

Затем из него вы можете выполнить что-то вроде:

для 32 бит:

b2.exe --toolset = msvc-14.0 architecture = x86 address-model = 32 --stagedir = ".\stage32" threading = multi --build-type = complete stage

и для 64 бит:

b2.exe --toolset = msvc-14.0 architecture = x86 address-model = 64 --stagedir = ".\stage64" threading = multi -build-type = complete stage

Или, если хотите, просто перейдите на страницу https://github.com/manuelgustavo/boost_build и выполните шаги оттуда.

Ответ 4

Еще один совет для сборки с Visual Studio 2017, который работал в моем случае. Если вы уже создали Boost со старой версией Visual Studio, удалите временные командные файлы, созданные бутстрапом Boost, расположенными в вашей папке пользователя TEMP, например:

C:\Users\MYUSER~1\AppData\Local\Temp\b2_msvc_14.1_vcvarsx86_amd64_.cmd

Решение взято из этой темы: http://boost.2283326.n4.nabble.com/Building-boost-fails-with-VS2017-v15-5-2-td4700909.html