MSVC 14.0 (VS 2015)으로 Boost를 컴파일하는 동안 알 수없는 컴파일러 버전
컴퓨터에서 Boost 라이브러리를 컴파일하는 동안 "알 수없는 컴파일러 버전-구성 테스트를 실행하고 결과를보고하십시오"라는 메시지가 나타납니다.
최신 Boost (게시일 기준)-1.58.0이 있습니다.
Boost는 아직 MSVC 14.0을 지원하지 않습니까? "구성 테스트를 실행"하려면 어떻게합니까?
.
최신 (이 답변 게시 당시) Boost 1.58 은 Boost 1.58 릴리스 당시 최신 MS 컴파일러 인 MSVC 14.0 Preview 를 지원 합니다. 이제 최신 버전의 Visual Studio에서 입니다 2015 RC 부스트 1.58 설정 파일에 포함되지 않습니다.
알 수없는 컴파일러 버전 편집 boost/config/compiler/visualc.hpp
및 교체 에 대해 불평하는 Boost 1.58을 중지하려면 :
// 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 1.59 릴리스를 위해 여기 에서 boost repo에서 이미 찾을 수 있습니다 .
업데이트 : Visual Studio 2015 RTM의 경우 다음과 같이 설정합니다.
// last known and checked version is 19.00.23026 (VC++ 2015):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023026)
Update2 : Visual Studio 2015 업데이트 1의 경우 다음과 같이 설정합니다.
// last known and checked version is 19.00.23506 (VC++ 2015 Update 1):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190023506)
또한 이전에 Boost.Build on 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 도구 명령 프롬프트에서 명령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) 메이저 버전 만 확인하려면 (한 줄 선택) :
#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) 메이저 버전과 마이너 버전을 모두 확인하려면 (한 줄 선택) :
#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의 다음 릴리스를 기다려야합니까?
Visual Studio 2015에서 Ogre 1.9에 대해 다음 코드를 시도했으며 코드가 작동했습니다.
마지막으로 확인되고 확인 된 버전은 19.00.23506 (VC ++ 2015 업데이트 1) : if (_MSC_VER> 1800 && _MSC_FULL_VER> 190023506)
'Development Tip' 카테고리의 다른 글
선택 쿼리의 출력을 postgres의 하나의 어레이에 저장 (0) | 2020.12.15 |
---|---|
Python지도 개체는 구독 할 수 없습니다. (0) | 2020.12.15 |
사용자가 수행 할 권한이 없습니다. cloudformation : CreateStack (0) | 2020.12.15 |
Ruby 1.9를 Ubuntu에서 기본 Ruby로 만들려면 어떻게해야합니까? (0) | 2020.12.15 |
ArrayList를 읽기 전용으로 설정 (0) | 2020.12.15 |