2017-01-04 14 views
34

Próbuję zbudować boost 1.63 z najnowszymi msvc 14.1 i VS2017 RC. Więc zrobiłem wszystko co robię normalnie, otworzyłem Cmd Development, a następnie uruchomić bootstrap.bat i uruchom polecenieZwiększenie wydajności z msvc 14.1 (VS2017 RC)

b2 -link=static -threading=multi 

Z jakiegoś powodu mam te błędy:

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 

I am nie znają z podbicia więc może ktoś z was mógłby dać mi wskazówkę

+1

[Uwagi do wydania] (http://www.boost.org/users/history/version_1_63_0.html) nie wymienia tego kompilatora jako jednego z tych używanych do testowania. Patrząc na [źródła doładowania] (https://github.com/boostorg/build/blob/d1dc47914da6e4f4fde8f2ef6f39ddebe6732239/src/tools/msvc.jam#L1598), wygląda na to, że nie obsługuje tego zestawu narzędzi. Ponieważ nie znasz się na podbiciu, dobrze jest zacząć od kompilatora, który jest obsługiwany i testowany. –

+0

To nie jest problem, miałem taki sam problem z kilkoma wersjami visual studio - choć wydaje mi się, że to tylko 64-bitowe kompilacje. Zamierzam opublikować bilet w module doładowania i zaktualizuję go, jeśli odpowie. –

+0

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

Odpowiedz

29

doładowania 1.63 nie obsługuje w pełni VS2017, ale można oszukać go znaleźć VC++ 2017 kompilatora:

  1. Run bootstrap.bat w katalogu doładowania
  2. Aktualizacja projektu-config.jam obejmuje: using msvc : 14.0 : <path to x86 or x64 cl.exe>. Powinien być czymś takim, jak "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.24911\bin\HostX64\x64\cl.exe"
  3. Uruchomić "Wiersz poleceń programisty dla VS 2017 RC" z menu Start systemu Windows, aby wywołać boost z powłoki skonfigurowanej za pomocą xcvars x86 lub x64 vcvars.
  4. Wykonaj polecenie b2 toolset=msvc-14.0 w tym wierszu polecenia. W przypadku kompilacji x64 dodaj address-model=64 do linii poleceń b2.

UPDATE: Boost 1.64 powinny wspierać VS2017

Run "x86 Native Tools Command Prompt dla VS 2017" lub "x64 Native Tools Command Prompt dla VS 2017" z menu Start, niż wewnątrz wiersza polecenia Uruchom b2:

32-bitowe: b2 toolset=msvc-14.1 --build-dir=.x86 --stagedir=stage_x86

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

Dodaj link=shared do budowania wspólnych bibliotek

+1

to mi wystarczyło! Musiałem jednak zmienić (2), aby wyglądało to tak: 'using msvc: 14.0:" C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ VC \ Tools \ MSVC \ 14.10.25017 \ bin \ HostX64 \ x64 \ cl.exe "" lub wystąpił błąd "Błąd: inicjalizacja msvc: parametr" wersja "niespójny" – sail0r

52

Na podstawie odpowiedzi OOA i D KindDragons i CPlusPlus skompilowałem Boost 1.63. Dla 64bit. Run "x64 Native Command Prompt Narzędzia dla VS 2017" wierszu poleceń:

1) Run: bootstrap.bat

2) otwarte project-config.jam. Oto moje:

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 ; 

Część: 14.10.25017 wciąż się zmieniaj z aktualizacjami do zestawu Windows SDK. Więc odpowiednio go zaktualizuj.

3) Uruchom b2 toolset=msvc-14.0 address-model=64

+3

Gdybym tylko mógł dwukrotnie głosować w górę tego słowa ... Prawie stworzyłem drugie konto właśnie za to. –

+1

Przy użyciu Visual Studio 2017, Update 2, tylko narzędzie x64 wyświetla odpowiednie pliki wykonywalne asemblera ml64.exe (np. Ml.exe dla x86 i ml64.exe dla x64). W przypadku architektury x64 za każdym razem, gdy używam pytania w Narzędziach programistycznych, odpowiedzią jest, że "" "ml64" nie jest rozpoznawane jako wewnętrzne lub zewnętrzne polecenie, działający program lub plik wsadowy. "" Należy jednak pamiętać, że pliki wyjściowe x64 Boost poprawnie występują z pytaniem _ ** x64 Native Tools ** _. Pliki wyjściowe x86 aka Win32 Boost poprawnie się zdarzają z monitem ___ ** Narzędzia programistyczne ** _. Dostępny jest tylko jeden skrót klawiszowy Narzędzia programistyczne (np. X86). –

+0

Świetna robota! dzięki –

7

Został utworzony skrypt wsadowy, który buduje zarówno 32 i 64-bitowych plików binarnych w następującym github repo: https://github.com/manuelgustavo/boost_build

tajemnica tkwi w użyciu Visual Studio 2017 deweloperem Wiersz polecenia . Ustawia wszystkie zmienne środowiskowe według potrzeb.

Następnie z nim, można wykonać coś takiego:

dla 32 bit ...

b2.exe --toolset = msvc-= 14,0 architektura x86 adres model = 32 - stagedir =”. \ stage32" gwintowanie = --build typu Multi = zakończeniu etapu

lub 64 bitów ...

b2.exe --toolset = msvc-= 14,0 architektury x86 adresowania model = 64 --stagedir =”. \ Stage64" gwintowania = --build typu Multi = pełna etap

Lub jeśli wolisz, po prostu idź do https://github.com/manuelgustavo/boost_build i wykonaj kroki stamtąd.

+0

Lovely !!! Powinieneś dodać informacje do skryptu, który musi zostać uruchomiony z wiersza poleceń btw –

+1

możesz także po prostu uruchomić "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Społeczność \ VC \ Auxiliary \ Build \ vcvars (32/64) .bat ", aby ustawić zmienne env dla standardowego cmd. – TheBat

Powiązane problemy