Drillinge
Triplet ist ein Standardausdruck, der bei der kompilierenden Kompilierung als Möglichkeit zum vollständigen Erfassen der Zielumgebung (CPU, Betriebssystem, Compiler, Laufzeit usw.) in einem einzigen, bequemen Namen verwendet wird.
In vcpkg beschreiben Triplets einen imaginären "Zielkonfigurationssatz" für jede Bibliothek. Innerhalb eines Triplets werden Bibliotheken in der Regel mit derselben Konfiguration erstellt, es ist jedoch keine Anforderung. Beispielsweise könnten Sie ein Triplet haben, das statisch und zlib
dynamisch erstellt openssl
wird, eine, die sie statisch erstellt, und eine, die beide dynamisch erstellt (alle für dasselbe Zielbetriebssystem und die gleiche Architektur).
Ein einzelner Build verwendet Dateien von bis zu zwei Triplets: das Ziel-Triplet und das Host-Triplet. Wenn Sie unterschiedliche Einstellungen für unterschiedliche Bibliotheken anwenden müssen, müssen Sie ein einzelnes benutzerdefiniertes Triplet mit dieser Kombination von Einstellungen erstellen. Informationen dazu finden Sie in der Anpassung pro Port.
vcpkg verfügt über vordefinierte Triplets für viele gängige Plattformen und Konfigurationen. Führen Sie die Ausführung vcpkg help triplet
aus, um eine Liste der verfügbaren Triplets in Ihrer Umgebung abzurufen.
Dreifachauswahl
So wählen Sie ein Ziel-Triplet aus:
- Im klassischen Modus:
- Qualifizieren sie Paketverweise mit dem Dreifachnamen, z
zlib:x64-windows-static-md
. B. . - Erfolgreich
--triplet=<triplet>
- Qualifizieren sie Paketverweise mit dem Dreifachnamen, z
- In CMake:
- Legen Sie
VCPKG_TARGET_TRIPLET
fest.
- Legen Sie
- In MSBuild:
- Legen Sie
VcpkgTriplet
fest.
- Legen Sie
So wählen Sie das Host-Triplet für den aktuellen Computer aus:
- Im klassischen Modus:
- Erfolgreich
--host-triplet=<triplet>
- Erfolgreich
- In CMake:
- Legen Sie
VCPKG_HOST_TRIPLET
fest.
- Legen Sie
- In MSBuild:
- Legen Sie
VcpkgHostTriplet
fest.
- Legen Sie
Dreier der Gemeinschaft
Triplets, die triplets\community
im Ordner enthalten sind, werden nicht von der kontinuierlichen Integration der kuratierten Registrierung getestet, sondern häufig von der Community angefordert. Da wir keine kontinuierliche Abdeckung haben, können Portupdates die Kompatibilität mit Community-Triplets unterbrechen. Gerne akzeptieren und überprüfen wir Beiträge, die darauf abzielen, Probleme mit diesen Triplets zu lösen.
Wenn Sie ein Community-Triplet verwenden, wird während einer Paketinstallation eine Meldung wie die folgende gedruckt:
-- 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
Hinzufügen oder Ersetzen von Dreifachen
Sie können vcpkg erweitern, indem Sie In-the-Box-Triplets ersetzen oder neue Triplets für Ihr bestimmtes Projekt erstellen.
Kopieren Sie zunächst eine integrierte Tripletdatei aus dem triplets\
Verzeichnis in einen anderen Dateisystemspeicherort. Fügen Sie dieses Verzeichnis dann der Liste der Überlagerungs-Tripletpfade hinzu, wenn sie mit vcpkg interagieren.
- Im Manifestmodus können Sie verwenden
$.vcpkg-configuration.overlay-triplets
. - Wenn Sie vcpkg aus CMake verwenden, können Sie festlegen
VCPKG_OVERLAY_TRIPLETS
. - Wenn Sie vcpkg von MSBuild verwenden, können Sie msBuild zusätzliche Optionen hinzufügen
--overlay-triplets=...
. - Wenn Sie die CLI direkt verwenden, können Sie übergeben
--overlay-triplets=...
. - Sie können die Umgebungsvariable
$VCPKG_OVERLAY_TRIPLETS
auf eine Liste von Überlagerungspfaden festlegen.
Eine ausführlichere exemplarische Vorgehensweise finden Sie in unseren Overlay-Triplets.
Hinweis
Dreifachnamen dürfen nur alphanumerische Zeichen und Bindestriche in Kleinbuchstaben enthalten.
Hinweise
Das Standard-Triplet beim Ausführen eines vcpkg-Befehls ist %VCPKG_DEFAULT_TRIPLET%
oder eine plattformspezifische Wahl, wenn diese Umgebungsvariable nicht definiert ist.
- Windows:
x64-windows
- Linux:
x64-linux
- OSX:
x64-osx
Wir empfehlen die Verwendung eines systematischen Benennungsschemas beim Erstellen neuer Triplets. Das Android Toolchain-Benennungsschema ist eine gute Inspirationsquelle: https://developer.android.com/ndk/guides/standalone_toolchain.html.