Überlagerungsports
In der Regel werden vcpkg-Ports aus Registern abgerufen. Es ist sehr wahrscheinlich, dass die meisten der ports, die Sie installieren, von der offiziellen vcpkg Registry bei https://github.com/Microsoft/vcpkg. Mit vcpkg können Sie Überlagerungsports installieren, die ihnen über das Dateisystem zur Verfügung stehen.
Ein Überlagerungsport kann als Drop-In-Ersatz für einen vorhandenen Port oder als neuer Port fungieren, der andernfalls nicht in einer Registrierung verfügbar ist. Beim Auflösen von Paketnamen haben Überlagerungsports Vorrang.
Überlagerungsports werden in der folgenden Reihenfolge ausgewertet:
- Überlagerungspositionen, die in der Befehlszeile über
--overlay-ports
. - Überlagerungsspeicherorte, die in einer
vcpkg-configuration.json
Datei überoverlay-ports
. - Überlagerungsspeicherorte, die durch die
VCPKG_OVERLAY_PORTS
Umgebungsvariable angegeben werden.
Beim Auflösen von Portnamen wird der erste Speicherort ausgewählt, der einen übereinstimmenden Überlagerungsport enthält.
Verwenden eines Überlagerungsports
Ein Verzeichnis kann eine Reihe von Überlagerungsports darstellen und auf eine von zwei Arten angegeben werden:
- Einzelner Überlagerungsport:
<directory>/sqlite3
bezieht sich auf einen einzelnen Port - Verzeichnis der Überlagerungsports:
<directory>
bezieht sich auf ein Verzeichnis von Ports Ein gültiger Port muss sowohl alsportfile.cmake
auchvcpkg.json
.
Sie können einen Überlagerungsport auf verschiedene Arten hinzufügen:
- Befehlszeile: Hinzufügen einer oder mehrerer
--overlay-ports=<directory>
Optionen zum vcpkg-Befehl - Manifest: Auffüllen des
"overlay-ports"
Arrays invcpkg-configuration.json
- Umgebungsvariable: Festlegen
VCPKG_OVERLAY_PORTS
auf eine Liste von Verzeichnispfaden
Beispiel: Überlagerungsports
Aufgrund dieser Verzeichnisstruktur:
Überlagerungsverzeichnis namens Teamports enthält Ports sqlite3, rapidjson und curl. Überlagerungsverzeichnis mit dem Namen "my-ports" enthält Ports "sqlite3" und "rapidjson". Das vcpkg-Verzeichnis enthält die Standardregistrierung.
Führen Sie Folgendes aus:
vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports
So führen Sie die Installation durch:
- Extraktion von
sqlite3
ausmy-ports
Führen Sie Folgendes aus:
vcpkg install sqlite3 rapidjson curl
--overlay-ports=my-ports/rapidjson
--overlay-ports=vcpkg/ports/curl
--overlay-ports=team-ports
So führen Sie die Installation durch:
- Extraktion von
sqlite3
austeam-ports
- Extraktion von
rapidjson
ausmy-ports
curl
von 'vcpkg/ports'
Beispiel: Verwenden von Überlagerungsports zur Verwendung einer Abhängigkeit des Systempaket-Managers
Informationen zur Verwendung einer Systempaket-Manager-Abhängigkeit über ein vcpkg one finden Sie in unserem Blogbeitrag.