最新のmsvc 14.1およびVS2017 RCでboost 1.63を構築しようとしています。だから私は普通にやることすべてをやったので、Development 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
私はブーストに慣れていないので、おそらくあなたの一人が私にヒントを与えることができます
KindDragonsとCPlusPlus OOAとDの回答に基づいて、Boost 1.63をコンパイルしました。 64ビットの場合。 「VS 2017のx64ネイティブツールコマンドプロンプト」コマンドプロンプトを実行します。
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は、Windows SDKの更新で常に変化します。それに応じて更新してください。
3)b2 toolset=msvc-14.0 address-model=64
を実行します
Boost 1.63はVS2017を完全にはサポートしていませんが、VC++ 2017コンパイラを見つけるためにそれをだますことができます:
bootstrap.bat
を実行します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"
のようなものでなければなりませんb2 toolset=msvc-14.0
を実行します。 x64ビルドの場合、address-model=64
をb2コマンドラインに追加します。更新: Boost 1.64 はVS2017をサポートする必要があります
コマンドプロンプトrun b2
内よりも、[スタート]メニューから[VS 2017のx86ネイティブツールコマンドプロンプト]または[VS 2017のx64ネイティブツールコマンドプロンプト]を実行します。
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
を追加して共有ライブラリを構築します
次のgithubリポジトリで32ビットと64ビットの両方のバイナリをビルドするバッチスクリプトを作成しました: https://github.com/manuelgustavo/boost_build
秘密は、Visual Studio 2017の開発者コマンドプロンプトの使用にあります。必要に応じてすべての環境変数を設定します。
それから、次のようなものを実行できます:
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 に移動し、そこから手順を実行してください。
私の場合はVisual Studio 2017でビルドするためのもう1つのヒントがありました。 Visual Studioの古いバージョンでBoostを既にビルドしている場合は、Boostbootstrapによって生成された一時バッチファイルを削除します。ユーザーの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