Version de compilateur inconnue lors de la compilation de Boost avec MSVC 14.0 (VS 2015)

Je reçois la “version du compilateur inconnu – veuillez lancer des tests de configuration et rapporter les résultats” tout en essayant de comstackr la bibliothèque Boost sur mon ordinateur.
J’ai le plus récent Boost (à date du post) – 1.58.0.
Est-ce que Boost ne supporte pas encore MSVC 14.0? Comment “exécuter les tests de configuration”?

Captures d'écran .

Plus récent (au moment de la publication de cette réponse) Boost 1.58 prend en charge MSVC 14.0 Preview, qui était le dernier compilateur MS au moment de la publication de Boost 1.58. Maintenant, la dernière version de Visual Studio est 2015 RC qui n’est pas couverte dans le fichier de configuration boost 1.58.

Pour arrêter Boost 1.58 se plaindre de la version inconnue du compilateur, éditez boost/config/comstackr/visualc.hpp et remplacez:

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

avec:

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

que vous pouvez trouver est déjà fait dans le repo boost ici pour la prochaine version de Boost 1.59.

Mise à jour : pour Visual Studio 2015 RTM, définissez-le sur:

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

Update2 : pour Visual Studio 2015 Update 1, définissez-le sur:

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

Aussi, si vous avez déjà exécuté Boost.Build sur le toolset=msvc-14.0 d’ toolset=msvc-14.0 supprimez-le de C:\Users\\AppData\Local\Temp les fichiers mis en cache suivants:

 b2_msvc_14.0_vcvarsall_x86.cmd b2_msvc_14.0_vcvarsall_x86_amd64.cmd b2_msvc_14.0_vcvarsall_x86_arm.cmd 

Plus à ce sujet ici .

Update3 Pour référence ultérieure, dans l’invite de commande de Visual Studio Tools, exécutez la commande cl /Bv pour afficher vos numéros de version (les parameters sont sensibles à la casse).

Le mien produit ce qui suit:

 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 

Vous pouvez en déduire que _MSC_VER est 1911 (du texte “Version 19.11”) et que _MSC_FULL_VER est 191125506.

Visual Studio 2015 Update 1:

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

Visual Studio 2015 Update 2:

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

Visual Studio 2015 Update 3:

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

Visual Studio 2017 (Crédit photo: lune ensoleillée):

 #if (_MSC_VER > 1910 && _MSC_FULL_VER > 191025017) 

Visual Studio 2017 15.3:

 #if (_MSC_VER > 1911 && _MSC_FULL_VER > 191125506) // Alternative version (Credit zzz): #if (_MSC_VER > 1911) 

Visual Studio 2017 15.5 (giles de crédit):

 #if (_MSC_VER > 1912 && _MSC_FULL_VER > 191225830) // Alternative version: #if (_MSC_VER > 1912) 

Visual Studio 2017 15.6:

 #if (_MSC_VER > 1913 && _MSC_FULL_VER > 191326128) // Alternative version: #if (_MSC_VER > 1913) 

Visual Studio 2017 15.7:

 #if (_MSC_VER > 1914 && _MSC_FULL_VER > 191426428) // Alternative version: #if (_MSC_VER > 1914) 

Visual Studio 2017 15.8:

 #if (_MSC_VER > 1915 && _MSC_FULL_VER > 191526726) // Alternative version: #if (_MSC_VER > 1915) 

Maintenant, en utilisant la version complète de msvc-14.0 (Visual Studio 2015), vous pouvez utiliser ceci:

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

Est-ce qu’il y a un danger? Devrions-nous plutôt attendre la prochaine version de Boost qui a été officiellement éditée pour avoir cette valeur?

En général, ouvrez boost/config/comstackr/visualc.hpp et boost/config/comstackr/visualc.hpp la souris sur _MSC_FULL_VER pour voir la version installée sur votre environnement.

J’ai essayé le code suivant pour Ogre 1.9 dans Visual Studio 2015 et cela a fonctionné, le code est

la dernière version connue et vérifiée est 19.00.23506 (VC ++ 2015 Update 1): if (_MSC_VER> 1800 && _MSC_FULL_VER> 190023506)