Trigêmeos
Triplet é um termo padrão usado em compilação cruzada como uma maneira de capturar completamente o ambiente de destino (CPU, SO, compilador, tempo de execução, etc.) em um único nome conveniente.
Em vcpkg, os trigêmeos descrevem um "conjunto de configurações alvo" imaginário para cada biblioteca. Dentro de um triplete, as bibliotecas geralmente são construídas com a mesma configuração, mas não é um requisito. Por exemplo, você pode ter um triplete que compila openssl
estática e zlib
dinamicamente, um que os constrói estaticamente e um que os constrói dinamicamente (todos para o mesmo sistema operacional e arquitetura de destino).
Uma única compilação consumirá arquivos de até dois trigêmeos: o triplete alvo e o triplete host. Se você precisar aplicar configurações diferentes para bibliotecas diferentes, deverá criar um único triplete personalizado com essa combinação de configurações. Consulte a personalização por porta para saber como fazer isso.
VCPKG vem com trigêmeos pré-definidos para muitas plataformas e configurações comuns. Execute vcpkg help triplet
para obter a lista de disponíveis em seu ambiente.
Seleção de trigêmeos
Para selecionar um triplete alvo:
- No modo clássico:
- Qualifique referências de pacote com o nome triplete, como
zlib:x64-windows-static-md
. - Passe
--triplet=<triplet>
.
- Qualifique referências de pacote com o nome triplete, como
- No CMake:
- Defina
VCPKG_TARGET_TRIPLET
.
- Defina
- No MSBuild:
- Defina
VcpkgTriplet
.
- Defina
Para selecionar o triplete host para a máquina atual:
- No modo clássico:
- Passe
--host-triplet=<triplet>
.
- Passe
- No CMake:
- Defina
VCPKG_HOST_TRIPLET
.
- Defina
- No MSBuild:
- Defina
VcpkgHostTriplet
.
- Defina
Trigêmeos comunitários
Os trigêmeos triplets\community
contidos na pasta não são testados pela integração contínua do registro selecionado, mas são comumente solicitados pela comunidade. Como não temos cobertura contínua, as atualizações de porta podem quebrar a compatibilidade com trigêmeos da comunidade. Aceitamos e revisamos de bom grado as contribuições que visam resolver problemas com esses trigêmeos.
Ao usar um triplete da comunidade, uma mensagem como a seguinte será impressa durante a instalação de um pacote:
-- 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
Adicionar ou substituir trigêmeos
Você pode estender vcpkg substituindo trigêmeos in-the-box ou criando novos trigêmeos para o seu projeto específico.
Primeiro, copie um arquivo triplet interno do diretório para um local diferente do sistema de triplets\
arquivos. Em seguida, adicione esse diretório à lista de caminhos triplete de sobreposição ao interagir com vcpkg.
- No modo Manifesto, você pode usar
$.vcpkg-configuration.overlay-triplets
o . - Ao usar vcpkg do CMake, você pode definir
VCPKG_OVERLAY_TRIPLETS
. - Ao usar vcpkg do MSBuild, você pode adicionar
--overlay-triplets=...
ao MSBuild Opções adicionais. - Ao usar a CLI diretamente, você pode passar
--overlay-triplets=...
. - Você pode definir a
$VCPKG_OVERLAY_TRIPLETS
variável de ambiente como uma lista de caminhos de sobreposição.
Veja nosso exemplo de trigêmeos sobrepostos para obter um passo a passo mais detalhado.
Comentários
O triplet padrão ao executar qualquer comando vcpkg é %VCPKG_DEFAULT_TRIPLET%
ou uma escolha específica da plataforma se essa variável de ambiente estiver indefinida.
- Windows:
x64-windows
- Linux:
x64-linux
- OSX:
x64-osx
Recomendamos o uso de um esquema sistemático de nomenclatura ao criar novos trigêmeos. O esquema de nomenclatura do Android toolchain é uma boa fonte de inspiração: https://developer.android.com/ndk/guides/standalone_toolchain.html.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de