Неизвестная версия компилятора при компиляции Boost с MSVC 14.0 (VS 2015)


Я получаю "Неизвестная версия компилятора - пожалуйста, запустите configure tests и сообщите о результатах" при попытке скомпилировать библиотеку Boost на моем компьютере.
У меня есть самый последний импульс (на дату публикации) - 1.58.0.
Не повышает поддержку MSVC 14.0, пока? Как мне "запустить тесты настройки"?

Screenshots.

5   52   2015-06-10 18:32:55

5 ответов:

последний (на момент публикации этого ответа) увеличить 1.58 поддерживает MSVC 14.0 Preview который был последним компилятором MS на момент выпуска Boost 1.58. Теперь, последняя версия Visual Studio и 2015 RC который не рассматривается в файле конфигурации boost 1.58.

чтобы остановить Boost 1.58 жалуясь на неизвестную версию компилятора edit 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)

который вы можете найти уже сделано в boost repo здесь для предстоящего выпуска Boost 1.59.

обновление: для Visual Studio 2015 RTM установить его на:

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

обновление 2: для Visual 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 затем удалить с 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 Tools выполните команду cl /Bv чтобы увидеть ваши номера версий (параметры чувствительны к регистру).

Mine выводит следующее:

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

из этого можно вывести _MSC_VER is 1911 (из текста "версия 19.11") и _MSC_FULL_VER is 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 (кредит: sunny moon):

#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 (Credit giles):

#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)

теперь, используя полностью выпущенную версию msvc-14.0 (Visual Studio 2015), Вы можете использовать это:

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

есть ли в этом какая-то опасность? Должны ли мы вместо этого ждать следующего выпуска Boost, который был официально отредактирован, чтобы иметь это значение?

В общем, откройте boost/config/compiler/visualc.hpp и наведите указатель мыши на _MSC_FULL_VER чтобы увидеть версию, установленную в вашей среде.

Я пробовал следующий код для Ogre 1.9 в Visual Studio 2015, и это сработало код

последняя известная и проверенная версия-19.00.23506 (VC++ 2015 Update 1): если (_MSC_VER > 1800 & & _MSC_FULL_VER > 190023506)