コンピューターでBoostライブラリをコンパイルしようとすると、「不明なコンパイラーバージョン-構成テストを実行して結果を報告してください」というメッセージが表示されます。
最新のBoostがあります(投稿日現在)-1.58.0。
BoostはまだMSVC 14.0をサポートしていませんか? 「構成テストを実行する」方法
。
最新(この回答を投稿した時点)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であると推定できます。
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
一般に、boost/config/compiler/visualc.hpp
を開き、_MSC_FULL_VER
の上にマウスを移動して、環境にインストールされているバージョンを確認します。
Msvc-14.0の完全にリリースされたバージョン(Visual Studio 2015)を使用して、これを使用できます。
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023026)
これは危険ですか?代わりに、この値を持つように公式に編集されたBoostの次のリリースを待つ必要がありますか?