Microsoft MVP성태의 닷넷 이야기
글쓴 사람
홈페이지
첨부 파일
 

vcpkg - "Building vcpkg.exe failed. Please ensure you have installed Visual Studio with the Desktop C++ workload and the Windows SDK for Desktop C++"

이 오류의 원인은 다양하겠지만, 제 경우에는 다음과 같은 상황에서도 발생했습니다.

Build FAILED.

       "c:/temp/vcpkg\toolsrc\dirs.proj" (default target) (1) ->
       "c:/temp/vcpkg\toolsrc\vcpkg\vcpkg.vcxproj" (Build target) (2:2) ->
       "c:/temp/vcpkg\toolsrc\vcpkglib\vcpkglib.vcxproj" (default target) (3:4) ->
       (ClCompile target) ->
         c:/temp/vcpkg\toolsrc\src\vcpkg\base\cofffilereader.cpp(248): error C4996: 'std::fpos<_Mbstatet>::seekpos
       ': warning STL4019: The member std::fpos::seekpos() is non-Standard, and is preserved only for compatibility wit
       h workarounds for old versions of Visual C++. It will be removed in a future release, and in this release always
        returns 0. Please use standards-conforming mechanisms to manipulate fpos, such as conversions to and from strea
       moff, or an integral type, instead. If you are receiving this message while compiling Boost.IOStreams, a fix has
        been submitted upstream to make Boost use standards-conforming mechanisms, as it does for other compilers. You
       can define _SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING to acknowledge that you have received this warning, or defi
       ne _REMOVE_FPOS_SEEKPOS to remove std::fpos::seekpos entirely. [c:/temp/vcpkg\toolsrc\vcpkglib\vcpkglib.vcxproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:08.10
c:/temp/vcpkg\scripts\bootstrap.ps1 : Building vcpkg.exe failed. Please ensure you have installed Visual Studio with the Desktop C++ workload and the Windows SDK for Desktop C++.
At line:1 char:4
+ & {& 'c:/temp/vcpkg\scripts\bootstrap.ps1'}
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,bootstrap.ps1

즉, Visual Studio를 업그레이드하면서 Visual C++ 컴파일러가 보다 더 공격적으로 표준을 지키는 기본 동작을 하는 바람에 vcpkg 소스 코드가 빌드가 안 되는 것입니다.

이런 경우에 해법은 2가지가 있을 것입니다. 하나는 vcxproj 파일의 빌드 옵션에 /WX를 추가하는 것입니다.

/WX (Treat Linker Warnings as Errors)
; https://msdn.microsoft.com/en-us/library/ms235592.aspx

또는, 약간의 시간이 지나고 나면 vcpkg 개발팀도 이 문제를 인지하고 github 소스 코드를 업데이트할 것이므로 "git pull" 명령어로 최신 업데이트를 받아 보는 것입니다. 제 경우에는 후자의 조치로 해결을 했습니다. ^^




참고로, git pull 명령어가 다음과 같이 막힐 때가 있습니다.

c:/temp/vcpkg>git pull
error: Your local changes to the following files would be overwritten by merge:
        scripts/cmake/vcpkg_get_windows_sdk.cmake
        scripts/getWindowsSDK.ps1
Please commit your changes or stash them before you merge.
Aborting
Updating 76096c95..eccae2ad

메시지에 따라 다음과 같이 stash를 하든,

c:/temp/vcpkg>git stash
Saved working directory and index state WIP on master: 76096c95 Merge pull request #2381 from markgarcia/tbb-2018_U2

어차피 vcpkg의 소스 코드를 수정하지 않는다고 하면 clean을 해도 무방할 것입니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]





[최초 등록일: ]
[최종 수정일: 12/19/2018 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 




1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
12181정성태3/11/2020444기타: 76. 재현 가능한 최소한의 예제 프로젝트란? - 두 번째 예제파일 다운로드1
12180정성태3/10/2020213오류 유형: 600. "Docker Desktop for Windows" - EXPOSE 포트가 LISTENING 되지 않는 문제
12179정성태3/10/2020297개발 환경 구성: 481. docker - PostgreSQL 컨테이너 실행
12178정성태3/10/2020230개발 환경 구성: 480. Linux 운영체제의 docker를 위한 tcp 바인딩 추가
12177정성태3/9/2020287개발 환경 구성: 479. docker - MySQL 컨테이너 실행
12176정성태3/9/2020198개발 환경 구성: 478. 파일의 (sha256 등의) 해시 값(checksum) 확인하는 방법
12175정성태3/8/2020335개발 환경 구성: 477. "Docker Desktop for Windows"의 "Linux Container" 모드를 위한 tcp 바인딩 추가
12174정성태3/8/2020419개발 환경 구성: 476. DockerDesktopVM의 파일 시스템 접근 [1]
12173정성태3/8/2020405개발 환경 구성: 475. docker - SQL Server 2019 컨테이너 실행 [1]
12172정성태3/8/2020434개발 환경 구성: 474. docker - container에서 root 권한 명령어 실행(sudo)
12171정성태3/6/2020399VS.NET IDE: 143. Visual Studio - ASP.NET Core Web Application의 "Enable Docker Support" 옵션으로 달라지는 점
12170정성태3/6/2020288오류 유형: 599. "Docker Desktop is switching..." 메시지와 DockerDesktopVM CPU 소비 현상
12169정성태3/5/2020508개발 환경 구성: 473. Windows nanoserver에 대한 docker pull의 태그 사용
12168정성태3/8/2020489개발 환경 구성: 472. 윈도우 환경에서의 dockerd.exe("Docker Engine" 서비스)가 Linux의 것과 다른 점
12167정성태3/5/2020255개발 환경 구성: 471. C# - 닷넷 응용 프로그램에서 DB2 Express-C 데이터베이스 사용 (3) - ibmcom/db2express-c 컨테이너 사용
12166정성태3/14/2020306개발 환경 구성: 470. Windows Server 컨테이너 - DockerMsftProvider 모듈을 이용한 docker 설치
12165정성태3/2/2020321.NET Framework: 900. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 세 번째 이야기(Monitor.Enter 후킹)파일 다운로드1
12164정성태2/29/2020289오류 유형: 598. Surface Pro 6 - Windows Hello Face Software Device가 인식이 안 되는 문제
12163정성태2/27/2020338.NET Framework: 899. 익명 함수를 가리키는 delegate 필드에 대한 직렬화 문제
12162정성태2/28/2020407디버깅 기술: 166. C#에서 만든 COM 객체를 C/C++로 P/Invoke Interop 시 메모리 누수(Memory Leak) 발생파일 다운로드2
12161정성태2/26/2020195오류 유형: 597. manifest - The value "x64" of attribute "processorArchitecture" in element "assemblyIdentity" is invalid.
12160정성태2/26/2020269개발 환경 구성: 469. Reg-free COM 개체 사용을 위한 manifest 파일 생성 도구 - COMRegFreeManifest
12159정성태2/26/2020187오류 유형: 596. Visual Studio - The project needs to include ATL support
12158정성태2/26/2020296디버깅 기술: 165. C# - Marshal.GetIUnknownForObject/GetIDispatchForObject 사용 시 메모리 누수(Memory Leak) 발생파일 다운로드1
12157정성태2/27/2020315디버깅 기술: 164. C# - Marshal.GetNativeVariantForObject 사용 시 메모리 누수(Memory Leak) 발생 및 해결 방법파일 다운로드1
12156정성태2/25/2020229오류 유형: 595. LINK : warning LNK4098: defaultlib 'nafxcw.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...