MinGW wird im Rahmen des CI-Prozesses des vcpkg-Repositorys nicht getestet, sodass Regressionen als Teil von Bibliotheksupdates auftreten können. PRs, die den Support verbessern, sind willkommen!
Mingw-w64 Community-Triplets
vcpkg umfasst x64, x86, arm64 und arm Community Triplets für Mingw-w64. Sie sind nicht von Visual Studio abhängig und können nativ unter Windows sowie für die Kompilierung auf anderen Betriebssystemen verwendet werden. Es gibt zwei Varianten jedes Triplets, wobei zwischen statischer und dynamischer Verknüpfung ausgewählt wird. Die tatsächlichen Tools (g++ usw.) werden voraussichtlich mit bestimmten Präfixen benannt.
Aufbau
vcpkg Community-Triplets
Präfix des Toolnamens
x64
x64-mingw-dynamic, x64-mingw-static
x86_64-w64-mingw32-
x86
x86-mingw-dynamic, x86-mingw-static
i686-w64-mingw32-
arm64
arm64-mingw-dynamic, arm64-mingw-static
aarch64-w64-mingw32-
arm
arm-mingw-dynamic, arm-mingw-static
armv7-w64-mingw32-
Diese Triplets werden nicht durch kontinuierliche Integration getestet, sodass viele Ports nicht erstellt werden, und sogar vorhandene Ports können bei Portupdates unterbrechen.
Aus diesem Grund ist das Engagement der Gemeinschaft von größter Bedeutung!
Mit MSYS2 können Sie problemlos eine vollständige Umgebung zum Erstellen von Ports mit Mingw-w64 auf einem Windows-PC erstellen.
Beim Erstellen von Software für systemeigene Windows-Umgebungen müssen Sie ein Mingw-Subsystem von MSYS2 verwenden und einige Pakete (mit einem bestimmten Präfix) für dieses Subsystem installieren.
Architektur
vcpkg-Dreifache
subsystem
Paketpräfix
x64
x64-mingw-dynamic, x64-mingw-static
mingw64
mingw-w64-x86_64-
x86
x86-mingw-dynamic, x86-mingw-static
mingw32
mingw-w64-i686-
Nach der Basisinstallation von MSYS2 müssen Sie einige zusätzliche Pakete für die Softwareentwicklung installieren, z. B. für x64:
Das aktive Subsystem wird ausgewählt, indem die MSYS2 MinGW-App ausgeführt oder in einem ausgeführten Terminal geändert wird.
source shell mingw64 # for x64, or "mingw32" for x86
Die Bootstrapping von vcpkg muss durch Ausführen von Bootstrap-vcpkg.bat erfolgen. Dieser Befehl lädt den offiziellen vcpkg.exe herunter.
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.bat
Zum Erstellen von Paketen müssen Sie vcpkg mitteilen, dass Sie das Mingw-Triplet verwenden möchten. Dies kann auf unterschiedliche Weise erfolgen. Wenn Visual Studio nicht installiert ist, müssen Sie auch das Host-Triplet auf mingw festlegen. Dies ist erforderlich, um Hostabhängigkeiten aufzulösen. Zur Vereinfachung können Sie Umgebungsvariablen verwenden, um beide Triplets festzulegen:
So vermeiden Sie das Mischen verschiedener Installationen
Das MSYS2-Projekt warnt ausdrücklich, dass "Das Mischen von Programmen aus anderen MSYS2-Installationen, Cygwin-Installationen, Compiler-Toolketten oder sogar verschiedenen anderen Programmen nicht unterstützt wird und die Dinge wahrscheinlich unerwartet unterbrechen wird." Die ordnungsgemäße Übergabe von Befehlszeilenargumenten mit An- und Escapezeichen kann z. B. fehlschlagen.
Vcpkg-Ports erstellen jedoch implizit MSYS2-Installationen, z. B. für pkg-config und für verschiedene andere Buildtools, die für die Behandlung von Paketen auf der Grundlage von Autoconf erforderlich sind. Wenn ports vor der Umgebungsvariablen PATH das Verzeichnis der Tools vorangestellt haben, kann dies ändern, welches Tool mit einem bestimmten Namen tatsächlich aufgerufen wird und wie Argumente zwischen Tools übergeben werden.
Um solche Probleme beim Arbeiten mit einer vollständigen MSYS2-Installation zu beheben, versuchen Sie, die Verzeichnisse des msys-Subsystems (/usr/bin, ) aus der PATH Umgebungsvariablen zu behalten, binwie von vcpkg gefunden. In Bash können Sie den PATH just für einen einzelnen Aufruf von vcpkg ändern:
Alternativ können Sie vcpkg über eine normale Eingabeaufforderung ausführen, nachdem Sie nur das gewünschte Mingw-Verzeichnis (z. B. C:\msys64\mingw64\bin) zum Verzeichnis hinzugefügt PATHhaben.
Wenn Sie vcpkg für CI mit Standardimages in Azure-Pipelines, Github-Aktionen oder ähnlich verwenden, enthält die Standardeinstellung PATH möglicherweise weitere Verzeichnisse, die eine Mischung aus MSYS2-Programmen aus verschiedenen Installationen erstellen. Möglicherweise möchten Sie die gewünschten PATH Verzeichnisse manuell festlegen oder Verzeichnisse entfernen, die sh.exe, oder bash.exemsys-2.0.dllcygwin1.dll.
Verwenden von Mingw-w64 zum Erstellen von Windows-Programmen auf anderen Systemen
Sie können die vcpkg mingw Community-Triplets mit Toolketten auf Nicht-Windows-Computern verwenden, um softwareübergreifend zu kompilieren, um unter Windows ausgeführt werden zu können. Viele Linux-Distributionen bieten solche Toolketten in optionalen Paketen mit einem Mingw-w64-Suffix oder Präfix an. Als Beispiel für Debian-basierte Distributionen würden Sie mit diesem Installationsbefehl für die x64-Toolkette beginnen:
Die verpackten Versionen von Mingw-w64-Toolketten auf Linux-Distributionen können ältere Versionen sein, die einige nützliche Features oder Fehlerbehebungen fehlen. Eine alternative unabhängige Toolkette wird von MXE angeboten.
Klonen Sie für das vcpkg-Bootstrapping das GitHub-Repository, und führen Sie das bootstrap-vcpkg.sh Skript aus:
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg install zlib:x64-mingw-dynamic
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu vcpkg
vcpkg ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
In diesem Modul erfahren Sie, wie Sie das Windows-Subsystem für Linux (WSL) mit Visual Studio Code (VS Code) verwenden. Wir untersuchen den Installationsprozess und die Grundlagen der Verwendung von WSL. Darüber hinaus installieren und verwenden wir die WSL-Erweiterung von Visual Studio Code. Schließlich zeigen wir, wie Sie Python-Code in VS Code in unserer WSL-Umgebung debuggen und ausgeführen.