쌍둥이
Triplet 는 단일 편리한 이름으로 대상 환경(CPU, OS, 컴파일러, 런타임 등)을 완전히 캡처하는 방법으로 교차 컴파일에 사용되는 표준 용어입니다.
vcpkg에서 트리플렛은 모든 라이브러리에 대한 가상의 "대상 구성 집합"을 설명합니다. 세 배 내에서 라이브러리는 일반적으로 동일한 구성으로 빌드되지만 요구 사항은 아닙니다. 예를 들어 정적 및 zlib
동적으로 빌드 openssl
하는 트리플렛 하나, 정적으로 둘 다 빌드하는 트리플렛, 동적으로 빌드하는 삼중자(모두 동일한 대상 OS 및 아키텍처용)가 있을 수 있습니다.
단일 빌드는 최대 2개의 트리플렛(대상 트리플렛 및 호스트 트리플렛)의 파일을 사용합니다. 다른 라이브러리에 대해 다른 설정을 적용해야 하는 경우 해당 설정 조합으로 단일 사용자 지정 삼중자를 만들어야 합니다. 이 작업을 수행하는 방법은 포트별 사용자 지정을 참조하세요.
vcpkg에는 많은 일반적인 플랫폼 및 구성에 대해 미리 정의된 삼중자가 함께 제공됩니다. 실행 vcpkg help triplet
하여 사용자 환경에서 사용 가능한 삼중 항목 목록을 가져옵니다.
대상 삼중자를 선택하려면 다음을 수행합니다.
- 클래식 모드:
- 다음과 같이
zlib:x64-windows-static-md
세 쌍둥이 이름으로 패키지 참조를 한정합니다. - 을 전달합니다
--triplet=<triplet>
.
- 다음과 같이
- CMake에서:
VCPKG_TARGET_TRIPLET
을 설정합니다.
- MSBuild에서:
VcpkgTriplet
을 설정합니다.
현재 컴퓨터에 대한 호스트 트리플렛을 선택하려면 다음을 수행합니다.
- 클래식 모드:
- 을 전달합니다
--host-triplet=<triplet>
.
- 을 전달합니다
- CMake에서:
VCPKG_HOST_TRIPLET
을 설정합니다.
- MSBuild에서:
VcpkgHostTriplet
을 설정합니다.
폴더에 triplets\community
포함된 삼중 항목은 큐레이팅된 레지스트리의 연속 통합에 의해 테스트되지 않지만 커뮤니티에서 일반적으로 요청합니다. 지속적인 적용 범위가 없으므로 포트 업데이트는 커뮤니티 삼중항과의 호환성을 손상할 수 있습니다. 이러한 삼중자 문제를 해결하는 것을 목표로 하는 기여를 기꺼이 받아들이고 검토합니다.
커뮤니티 트리플렛을 사용하는 경우 패키지 설치 중에 다음과 같은 메시지가 인쇄됩니다.
-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\vcpkg\triplets\community\x86-uwp.cmake
기본 제공 트리플렛을 교체하거나 특정 프로젝트에 대한 새 세 쌍둥이를 만들어 vcpkg를 확장할 수 있습니다.
먼저 디렉터리에서 triplets\
기본 제공 triplet 파일을 다른 파일 시스템 위치로 복사합니다. 그런 다음 vcpkg와 상호 작용할 때 오버레이 삼중 경로 목록에 해당 디렉터리를 추가합니다.
- 매니페스트 모드에서는 .를 사용할
$.vcpkg-configuration.overlay-triplets
수 있습니다. - CMake에서 vcpkg를 사용하는 경우 설정할
VCPKG_OVERLAY_TRIPLETS
수 있습니다. - MSBuild에서 vcpkg를 사용하는 경우 MSBuild 추가 옵션에 추가할
--overlay-triplets=...
수 있습니다. - CLI를 직접 사용하는 경우 전달할
--overlay-triplets=...
수 있습니다. - 환경 변수를
$VCPKG_OVERLAY_TRIPLETS
오버레이 경로 목록으로 설정할 수 있습니다.
더 자세한 연습은 오버레이 트리플렛 예제를 참조하세요.
참고
삼중자 이름은 소문자 영숫자 및 하이픈만 포함할 수 있습니다.
vcpkg 명령을 실행할 때 기본 삼중값은 해당 환경 변수가 %VCPKG_DEFAULT_TRIPLET%
정의되지 않은 경우 플랫폼별 선택입니다.
- Windows:
x64-windows
- Linux:
x64-linux
- OSX:
x64-osx
새 세 쌍둥이를 만들 때 체계적인 명명 체계를 사용하는 것이 좋습니다. Android 도구 체인 명명 체계는 좋은 영감 https://developer.android.com/ndk/guides/standalone_toolchain.html의 원천입니다.
vcpkg 피드백
vcpkg은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.