2017-01-04 2 views
34

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

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 

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

+1

В [примечаниях к выпуску] (http://www.boost.org/users/history/version_1_63_0.html) этот список не указан как один из тех, которые используются для тестирования. Глядя на [источники форсированной сборки] (https://github.com/boostorg/build/blob/d1dc47914da6e4f4fde8f2ef6f39ddebe6732239/src/tools/msvc.jam#L1598), похоже, он не поддерживает этот набор инструментов. Поскольку вы не знакомы с повышением, может быть хорошей идеей начать с компилятора, который поддерживается и тестируется. –

+0

Это не проблема. У меня была одна и та же проблема с несколькими версиями visual studio - хотя для меня это похоже только на 64-битные сборки. Я собираюсь опубликовать билет на будильнике и будет обновляться здесь, если они ответят. –

+0

https://github.com/boostorg/build/issues/157 – KindDragon

ответ

29

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

  1. Run bootstrap.bat в каталоге повышающего
  2. Обновление проекта-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"
  3. Запустите «Командная строка разработчика для VS 2017 RC» из меню «Пуск» Windows, чтобы активировать оболочку, сконфигурированную с использованием vcvars x86 или x64 vcvars.
  4. Запустите b2 toolset=msvc-14.0 в этой командной строке. Для сборки x64 добавьте address-model=64 в командную строку b2.

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

Run "x86 Native Командная строка для VS 2017 года" или "x64 Native Командная строка для 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 для создания разделяемых библиотек

+1

это в значительной степени сделало трюк для меня! Мне пришлось изменить (2), чтобы выглядеть так: 'using msvc: 14.0:" C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ VC \ Tools \ MSVC \ 14.10.25017 \ bin \ HostX64 \ x64 \ cl.exe ", или есть ошибка' error: msvc initialization: параметр 'version' inconsistent' – sail0r

52

На основании ответов KindDragons и CPlusPlus OOA и D Я скомпилировал Boost 1.63. Для 64-битного. Run "x64 Native Tools Command Prompt для 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

+3

Если бы я мог проголосовать за это дважды ... Я почти создал вторую учетную запись только для этого. –

+1

С Visual Studio 2017, Update 2, только инструкция x64 для собственных средств правильно находит исполняемый файл ассемблера ml64.exe (например, ml.exe для x86 и ml64.exe для x64). Для x64 каждый раз, когда я использую подсказку «Инструменты для разработчиков», ответ «' ml64 »не распознается как внутренняя или внешняя команда, операционная программа или командный файл.» «Однако обратите внимание, что файлы выходных файлов x64 правильно выполняются с подсказкой _ ** x64 Native Tools ** **. Файлы x86 aka Win32 Boost правильно выполняются с запросом 2017 _ ** Developer Tools ** _. Доступен только один ярлык с подсказками для инструментов разработчика (например, x86). –

+0

Отличная работа! спасибо –

7

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

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

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

для 32 бит ...

b2.exe --toolset = MSVC-14,0 архитектура = x86 адресно-модель = 32 - stagedir =». \ stage32" потоковая = мульти --build типа = полный этап

или 64 бита ...

b2.exe --toolset = MSVC-14,0 архитектура = x86 адресно model = 64 --stagedir =». \ Stage64" потоковая = мульти --build типа = полный этап

Или, если вы предпочитаете, просто зайдите в https://github.com/manuelgustavo/boost_build и следуйте инструкциям оттуда.

+0

Lovely !!! Вы должны добавить информацию в скрипт, который должен быть запущен из командной строки vs btw –

+1

, вы также можете просто запустить «C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Auxiliary \ Build \ vcvars (32/64) .bat ", чтобы установить переменные env для стандартного cmd. – TheBat

Смежные вопросы