son - programas para programar en c y c++
Versión de compilador desconocida al compilar Boost con MSVC 14.0(VS 2015) (4)
Obtengo "Versión de compilador desconocida: ejecute las pruebas de configuración e informe los resultados" al intentar compilar la biblioteca Boost en mi computadora.
Tengo el Boost más reciente (a partir de la fecha de publicación): 1.58.0.
¿Boost aún no es compatible con MSVC 14.0?
¿Cómo "ejecuto las pruebas de configuración"?
.
Último (en el momento de publicar esta respuesta) Boost 1.58 es compatible con MSVC 14.0 Preview, que era el último compilador de MS en el momento del lanzamiento de Boost 1.58. Ahora, la última versión de Visual Studio es 2015 RC, que no está cubierta en el archivo de configuración boost 1.58.
Para detener Boost 1.58 quejándose de la versión desconocida del compilador, edite
boost/config/compiler/visualc.hpp
y reemplace:
// last known and checked version is 19.00.22129 (VC14 Preview):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022310)
con:
// last known and checked version is 19.00.22816 (VC++ 2015 RC):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022816)
que puede encontrar ya está hecho en el repositorio de impulso here para el próximo lanzamiento de Boost 1.59.
Actualización : para Visual Studio 2015 RTM configúrelo en:
// last known and checked version is 19.00.23026 (VC++ 2015):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023026)
Actualización 2 : para Visual Studio 2015 Actualización 1 configúrelo en:
// last known and checked version is 19.00.23506 (VC++ 2015 Update 1):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023506)
Además, si anteriormente ha estado ejecutando Boost.Build en
toolset=msvc-14.0
, elimine de
C:\Users\<name>\AppData\Local\Temp
los siguientes archivos en caché:
b2_msvc_14.0_vcvarsall_x86.cmd
b2_msvc_14.0_vcvarsall_x86_amd64.cmd
b2_msvc_14.0_vcvarsall_x86_arm.cmd
Más sobre eso here .
Actualización3
Para referencia futura, en el símbolo del sistema de Visual Studio Tools, ejecute el comando
cl /Bv
para ver los números de versión (los parámetros distinguen entre mayúsculas y minúsculas).
La mina produce lo siguiente:
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
A partir de esto, puede deducir que
_MSC_VER
es 1911 (del texto "Versión 19.11") y
_MSC_FULL_VER
es 191125506.
Ahora, usando la versión completamente lanzada de msvc-14.0 (Visual Studio 2015), puede usar esto:
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023026)
¿Hay algún peligro es esto? ¿Deberíamos esperar el próximo lanzamiento de Boost que ha sido editado oficialmente para tener este valor?
En general, abra
boost/config/compiler/visualc.hpp
y
boost/config/compiler/visualc.hpp
el mouse sobre
_MSC_FULL_VER
para ver la versión instalada en su entorno.
He intentado el siguiente código para el Ogre 1.9 en Visual Studio 2015 y funcionó, el código es
La última versión conocida y comprobada es 19.00.23506 (VC ++ 2015 Update 1): if (_MSC_VER> 1800 && _MSC_FULL_VER> 190023506)