vs2008을 10여년간 사용하다 vs2019를 사용하게 되어 boost를 설치 하려고 알아보니 vcpkg라는것이 있다고 하여
이런 저런 삽질을 진행한 결과를 정리한다.
참고 문서는 MS공식 문서가 제일 좋다.
vcpkg: a C++ package manager for Windows, Linux, and MacOS
설치
vcpkg를 설치할 경로에서 파워쉘을 실행하고 다음의 명령을 실행한다. GIT이 설치되어 있어야한다.
// vcpkg 저장소 clone
git clone https://github.com/microsoft/vcpkg.git
// 빌드
PS>./bootstrap-vcpkg.bat
빌드가 완료되면 vcpkg를 실행해볼 수 있다.
// 사용가능 패키지 검색
vcpkg search boost
// visual studio 연동 설정
vcpkg integrate install
// 파워쉘에서 자동완성을 지원해준다고 하는데 어떻게 사용하는지 아직 확인 불가
vcpkg integrate powershell
이렇게 환경을 구성했으면 triplet 에 대해서 알아야 한다.
x86-windows : dll 로 사용한다.
x86-windows-static : lib로 사용한다 MT 옵션 컴파일
x86-windows-static-md : lib로 사용한다. MD 옵션 컴파일
boost를 static link 하려면 다음과 같이 설치 한다.
vcpkg install boost:x86-windows-static-md
Visual studio 에서는 x86-windows가 기본값으로 되어 있어서 static 으로 사용하려면 vcxproj 파일을 열고 다음과 같이 설정을 추가 해야한다.
<PropertyGroup Label="Globals"> 항목을 찾아서 아래쪽에 추가한다.
<PropertyGroup Label="Globals">
<!-- .... -->
<VcpkgTriplet Condition="'$(Platform)'=='Win32'">x86-windows-static</VcpkgTriplet>
<VcpkgTriplet Condition="'$(Platform)'=='x64'">x64-windows-static</VcpkgTriplet>
</PropertyGroup>
링커-입력-지연 로드된 DLL 에 boost의 dll을 지정해주면 된다.
오픈소스들중에 이런 문제가 종종 있는것 같다.
프로젝트 configuration이 Debug, Release 가 아닌 다른 이름이라면 이에 대한 설정도 별도로 해야 한다.
<PropertyGroup>
<VcpkgConfiguration Condition="'$(Configuration)' == 'MyRelease'">Release</VcpkgConfiguration>
</PropertyGroup>
ps.
파워쉘 자동완성 기능은 윈도우 기본 탑재 파워쉘에서는 정상 동작 하지 않는다.
powershell7 을 설치 해보니 자동 완성이 잘 동작 했다.
2020.06 버전 부터는 static link 사용 방법이 달라졌다.
'지식창고 > 삽질' 카테고리의 다른 글
socket bind error 10013 , intellij, hyper-v (0) | 2020.06.22 |
---|---|
vcpkg 2020.06 업데이트 static link 방법 달라진점 (0) | 2020.06.17 |
윈도우10 시작 메뉴 문제 (0) | 2016.10.25 |
phpstorm gulp 설정 (0) | 2016.07.01 |