web-dev-qa-db-ja.com

BoostをMSVC 14.0でコンパイル中の不明なコンパイラバージョン(VS 2015)

コンピューターでBoostライブラリをコンパイルしようとすると、「不明なコンパイラーバージョン-構成テストを実行して結果を報告してください」というメッセージが表示されます。
最新のBoostがあります(投稿日現在)-1.58.0。
BoostはまだMSVC 14.0をサポートしていませんか? 「構成テストを実行する」方法

Screenshots

57
OmegaExtern

最新(この回答を投稿した時点)Boost 1.58はサポートしていますMSVC 14.0 PreviewBoost 1.58リリース時点で最新のMSコンパイラでした。現在、Visual Studioの最新バージョンは2015 RCです。 boost 1.58構成ファイルで説明されています。

Boost 1.58が不明なコンパイラバージョンについて文句を言うのを止めるには、boost/config/compiler/visualc.hppを編集して置き換えます:

// last known and checked version is 19.00.22129 (VC14 Preview):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022310)

で:

// last known and checked version is 19.00.22816 (VC++ 2015 RC):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022816)

あなたが見つけることができるブーストレポですでに行われています here 今後のBoost 1.59リリースのために。

Update:ForVisual Studio 2015 RTM設定:

// last known and checked version is 19.00.23026 (VC++ 2015):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023026)

Update2:ForVisual Studio 2015 Update 1設定:

// last known and checked version is 19.00.23506 (VC++ 2015 Update 1):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023506)

また、以前にtoolset=msvc-14.0でBoost.Buildを実行していた場合は、C:\Users\<name>\AppData\Local\Tempから次のキャッシュファイルを削除します。

b2_msvc_14.0_vcvarsall_x86.cmd 
b2_msvc_14.0_vcvarsall_x86_AMD64.cmd 
b2_msvc_14.0_vcvarsall_x86_arm.cmd

それについての詳細 ここ

Update3今後の参考のために、Visual Studioツールのコマンドプロンプトでcl /Bvコマンドを実行しますバージョン番号を確認します(パラメーターでは大文字と小文字が区別されます)。

私の出力は次のとおりです。

C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\cl.exe:        Version 19.11.25506.0
 C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\c1.dll:        Version 19.11.25506.0
 C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\c1xx.dll:      Version 19.11.25506.0
 C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\c2.dll:        Version 19.11.25506.0
 C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\link.exe:      Version 14.11.25506.0
 C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\mspdb140.dll:  Version 14.11.25506.0
 C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\1033\clui.dll: Version 19.11.25506.0

これから、_MSC_VERは1911(テキスト「バージョン19.11」から)および_MSC_FULL_VERは191125506であると推定できます。

69
doqtor

boost/config/compiler/visualc.hppを編集し、最後に確認および確認されたバージョンに関するテストを次のいずれかの行に置き換えます。

1)バージョンチェックを完全に無効にする場合:

#if 0

2)メジャーバージョンのみを確認する場合(1行選択):

#if (_MSC_VER > 1900) // Visual Studio 2015
#if (_MSC_VER > 1911) // Visual Studio 2017 15.0, 15.1 and 15.2
#if (_MSC_VER > 1911) // Visual Studio 2017 15.3 and 15.4
#if (_MSC_VER > 1912) // Visual Studio 2017 15.5
#if (_MSC_VER > 1913) // Visual Studio 2017 15.6
#if (_MSC_VER > 1914) // Visual Studio 2017 15.7
#if (_MSC_VER > 1915) // Visual Studio 2017 15.8
#if (_MSC_VER > 1916) // Visual Studio 2017 15.9
#if (_MSC_VER > 1920) // Visual Studio 2019 16.0

3)メジャーバージョンとマイナーバージョンの両方を確認する場合(1行選択):

#if (_MSC_VER > 1900 && _MSC_FULL_VER > 190023506) // Visual Studio 2015 Update 1
#if (_MSC_VER > 1900 && _MSC_FULL_VER > 190023918) // Visual Studio 2015 Update 2
#if (_MSC_VER > 1900 && _MSC_FULL_VER > 190023918) // Visual Studio 2015 Update 3
#if (_MSC_VER > 1910 && _MSC_FULL_VER > 191025017) // Visual Studio 2017 15.0, 15.1 and 15.2
#if (_MSC_VER > 1911 && _MSC_FULL_VER > 191125542) // Visual Studio 2017 15.3 and 15.4
#if (_MSC_VER > 1912 && _MSC_FULL_VER > 191225835) // Visual Studio 2017 15.5
#if (_MSC_VER > 1913 && _MSC_FULL_VER > 191326132) // Visual Studio 2017 15.6
#if (_MSC_VER > 1914 && _MSC_FULL_VER > 191426433) // Visual Studio 2017 15.7
#if (_MSC_VER > 1915 && _MSC_FULL_VER > 191526726) // Visual Studio 2017 15.8
#if (_MSC_VER > 1916 && _MSC_FULL_VER > 191627030) // Visual Studio 2017 15.9
#if (_MSC_VER > 1920 && _MSC_FULL_VER > 192027508) // Visual Studio 2019 16.0
37
Arnaud

一般に、boost/config/compiler/visualc.hppを開き、_MSC_FULL_VERの上にマウスを移動して、環境にインストールされているバージョンを確認します。

5
rkellerm

Msvc-14.0の完全にリリースされたバージョン(Visual Studio 2015)を使用して、これを使用できます。

#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023026)

これは危険ですか?代わりに、この値を持つように公式に編集されたBoostの次のリリースを待つ必要がありますか?

4
Matt