Freigeben über


Ü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 über overlay-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 als portfile.cmakeauch vcpkg.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 in vcpkg-configuration.json
  • Umgebungsvariable: Festlegen VCPKG_OVERLAY_PORTS auf eine Liste von Verzeichnispfaden

Beispiel: Überlagerungsports

Aufgrund dieser Verzeichnisstruktur:

Beispiel für mehrere Überlagerungsportverzeichnisse

Ü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 aus my-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 aus team-ports
  • Extraktion von rapidjson aus my-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.