본문 바로가기

프로그래밍/C-CPP

한글 visual studio 를 사용할 때, vcpkg install zlib 과정에 문자가 깨지며 빌드에러가 발생함.

728x90

한국어 (또는 일본어, 중국어등) visual studio 가 깔려 있을 경우, vcpkg 를 이용하여 패키지를 install 할 때, 중간 명령의 문자가 깨지면서 실패하는 경우가 있다. 이 경우의 대응법을 찾다가 한 일본 블로거의 포스팅을 발견하여 번역한다.

아래 방법을 사용하여 2019년 11월 27일 최신버전에서 동일한 문제를 넘어갈 수 있었다. (비록 원본 포스팅의 날짜는 2017년 10월 것이지만.)

zlib 와 protobuf 등에서 동일한 문제가 발생했다.

원본 포스팅 : https://eiichiromomma.github.io/2017/10/13/vcpkg-ninja/


vcpkg을 테스트해 보려고, Power Shell 에서

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\vcpkg install opencv:x64-windows

라고 입력하였더니, zlib 의 빌드과정에서

Error: Building package zlib:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: zlib:x86-windows
  Vcpkg version: 0.0.91-2017-10-12-9e19c24d2911ff1ef648aeed0c596e3987eafebf

Additionally, attach any relevant sections from the log files above.

이런 에러가 나왔다. 에러로그 파일을 열어보니

"C:/local/vcpkg/downloads/cmake-3.9.3-win32-x86/bin/cmcldeps.exe" RC C:\local\vcpkg\buildtrees\zlib\src\zlib-1.2.11\win3
2\zlib1.rc "CMakeFiles\zlib.dir\win32\zlib1.res.d" CMakeFiles\zlib.dir\win32\zlib1.res ": CN[h t@C:  " "C:/Program Files
 (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64_x86/cl.exe" C:\PROGRA~2\WI3CF2~1\8.1\bin\x64\rc.exe -DNO_FSEEKO -DZLIB_
DLL -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE -IC:\local\vcpkg\buildtrees\zlib\src\zlib-1.2.11 -IC:\local\v
cpkg\buildtrees\zlib\x86-windows-rel /DWIN32 /foCMakeFiles\zlib.dir\win32\zlib1.res C:\local\vcpkg\buildtrees\zlib\src\z
lib-1.2.11\win32\zlib1.rc

와 같이, 중간에 문자가 깨져 있었다. 그래서, chcp 명령으로 utf-8 로 하지 않아서인가 싶어서

chcp 65001

를 실행하여 utf-8 로 바꾸고 실행하였으나, 변함없이 에러가 발생했다. zlib 의 ports 를 살펴보니, 어쩐지 ninja 를 사용하고 있는 것 같다. 그래서, 이 이슈인 것 같아서, vcpkg/ports/zlib/portfile.cmake 내용 중에

    PREFER NINJA

부분을 코멘트하여 없앴더니, 결국 빌드가 성공했다.