Tripletta
Triplet è un termine standard usato per la compilazione incrociata come modo per acquisire completamente l'ambiente di destinazione (CPU, sistema operativo, compilatore, runtime e così via) in un unico nome pratico.
In vcpkg, i tripletti descrivono un "set di configurazione di destinazione" immaginario per ogni libreria. All'interno di un triplo, le librerie vengono in genere compilate con la stessa configurazione, ma non è un requisito. Ad esempio, è possibile avere un tripletto che compila openssl
in modo statico e zlib
dinamico, uno che li compila in modo statico e uno che li compila in modo dinamico (tutti per lo stesso sistema operativo di destinazione e architettura).
Una singola compilazione utilizzerà i file da un massimo di due triplette: il tripletto di destinazione e il tripletto host. Se è necessario applicare impostazioni diverse per librerie diverse, è necessario creare un singolo tripletto personalizzato con tale combinazione di impostazioni. Per informazioni su come eseguire questa operazione, vedere Personalizzazione per porta.
vcpkg include triplette predefinite per molte piattaforme e configurazioni comuni. Eseguire vcpkg help triplet
per ottenere un elenco di triplette disponibili nell'ambiente.
Per selezionare un triplo di destinazione:
- In modalità classica:
- Qualificare i riferimenti al pacchetto con il nome triplo, ad esempio
zlib:x64-windows-static-md
. - Passare
--triplet=<triplet>
.
- Qualificare i riferimenti al pacchetto con il nome triplo, ad esempio
- In CMake:
- Impostare
VCPKG_TARGET_TRIPLET
.
- Impostare
- In MSBuild:
- Impostare
VcpkgTriplet
.
- Impostare
Per selezionare il triplo host per il computer corrente:
- In modalità classica:
- Passare
--host-triplet=<triplet>
.
- Passare
- In CMake:
- Impostare
VCPKG_HOST_TRIPLET
.
- Impostare
- In MSBuild:
- Impostare
VcpkgHostTriplet
.
- Impostare
I tripletti contenuti nella triplets\community
cartella non vengono testati dall'integrazione continua del Registro di sistema curato, ma sono comunemente richiesti dalla community. Poiché non è disponibile copertura continua, gli aggiornamenti delle porte potrebbero interrompere la compatibilità con i tripletti della community. Siamo lieti di accettare e rivedere i contributi che mirano a risolvere i problemi con questi tripletti.
Quando si usa un triplo della community, durante l'installazione di un pacchetto verrà stampato un messaggio simile al seguente:
-- 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
È possibile estendere vcpkg sostituendo triplette in-the-box o creando nuovi triplette per il progetto specifico.
Prima di tutto, copiare un file triplet predefinito dalla triplets\
directory in un percorso del file system diverso. Aggiungere quindi tale directory all'elenco dei percorsi triplo sovrapposti durante l'interazione con vcpkg.
- In modalità manifesto è possibile usare
$.vcpkg-configuration.overlay-triplets
. - Quando si usa vcpkg da CMake, è possibile impostare
VCPKG_OVERLAY_TRIPLETS
. - Quando si usa vcpkg da MSBuild, è possibile aggiungere
--overlay-triplets=...
a MSBuild Opzioni aggiuntive. - Quando si usa direttamente l'interfaccia della riga di comando, è possibile passare
--overlay-triplets=...
. - È possibile impostare la
$VCPKG_OVERLAY_TRIPLETS
variabile di ambiente su un elenco di percorsi di sovrapposizione.
Per una procedura dettagliata più dettagliata, vedere l'esempio di triplette di sovrapposizione.
Nota
I nomi triplet possono contenere solo caratteri alfanumerici minuscoli e trattini.
Il triplo predefinito quando si esegue qualsiasi comando vcpkg è %VCPKG_DEFAULT_TRIPLET%
o una scelta specifica della piattaforma se tale variabile di ambiente non è definita.
- Windows:
x64-windows
- Linux:
x64-linux
- OSX:
x64-osx
È consigliabile usare uno schema di denominazione sistematico durante la creazione di nuove triplette. Lo schema di denominazione toolchain Android è una buona fonte di ispirazione: https://developer.android.com/ndk/guides/standalone_toolchain.html.
Feedback su vcpkg
vcpkg è un progetto di open source. Selezionare un collegamento per fornire feedback: