Číst v angličtině

Sdílet prostřednictvím


Mingw-w64

Poznámka

MinGW není testován jako součást procesu CI úložiště vcpkg, takže regrese mohou nastat jako součást aktualizací knihovny. Vítáme uživatele, kteří zlepšují podporu žádostí o přijetí změn.

Mingw-w64 community triplets

Vcpkg zahrnuje x64, x86, arm64 a komunitní trojité sady pro Mingw-w64. Nespoléhají na sadě Visual Studio a dají se nativně používat ve Windows a také pro křížové kompilace v jiných operačních systémech. Existují dvě varianty každého tripletu, které se vybírají mezi statickým a dynamickým propojením. Očekává se, že skutečné nástroje (g++ atd.) budou pojmenované s konkrétními předponami.

Architektura vcpkg community triplets Předpona názvu nástroje
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-
Rameno arm-mingw-dynamic, arm-mingw-static armv7-w64-mingw32-

Tyto triplety nejsou testovány kontinuální integrací, takže mnoho portů se nevytvořejí a dokonce i existující porty se můžou přerušit při aktualizacích portů. Kvůli tomu je nejdůležitější zapojení komunity!

Použití Mingw-w64 nativně ve Windows

S MSYS2 je možné snadno vytvořit úplné prostředí pro vytváření portů pomocí Mingw-w64 na počítači s Windows.

Při vytváření softwaru pro nativní prostředí windows musíte použít subsystém mingw MSYS2 a nainstalovat některé balíčky (s konkrétní předponou) pro tento subsystém.

Architektura vcpkg triplets Subsystému předpona balíčku
x64 x64-mingw-dynamic, x64-mingw-static mingw64 mingw-w64-x86_64-
x86 x86-mingw-dynamic, x86-mingw-static mingw32 mingw-w64-i686-

Po základní instalaci MSYS2 budete muset nainstalovat několik dalších balíčků pro vývoj softwaru, například pro x64:

pacman -S --needed git base-devel mingw-w64-x86_64-toolchain

Aktivní subsystém je vybraný spuštěním aplikace MSYS2 MinGW nebo změněným v běžícím terminálu.

source shell mingw64   # for x64, or "mingw32" for x86

Bootstrapping vcpkg se provádí spuštěním bootstrap-vcpkg.bat. Tento příkaz stáhne oficiální vcpkg.exe.

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.bat

Pro sestavování balíčků musíte říct vcpkg, že chcete použít mingw triplet. To lze provést různými způsoby. Pokud sada Visual Studio není nainstalovaná, musíte také nastavit triplet hostitele na mingw. To je potřeba k vyřešení závislostí hostitele. Pro usnadnění používání proměnných prostředí můžete nastavit obě trojité hodnoty:

export VCPKG_DEFAULT_TRIPLET=x64-mingw-dynamic
export VCPKG_DEFAULT_HOST_TRIPLET=x64-mingw-dynamic

Teď můžete otestovat nastavení:

./vcpkg install zlib

Jak se vyhnout kombinování různých instalací

Projekt MSYS2 explicitně varuje , že "kombinování programů z jiných instalací MSYS2, instalací Cygwin, nástrojů kompilátoru nebo dokonce různých jiných programů není podporováno a pravděpodobně přeruší věci neočekávanými způsoby." Například správné předávání argumentů příkazového řádku s uvozováním a escapingem může selhat.

Porty vcpkg ale implicitně vytvářejí instalace MSYS2, například pro pkg-config a pro různé další nástroje sestavení potřebné k řešení balíčků založených na autoconf. Konkrétně platí, že když porty předkládají adresář nástrojů proměnné PATH prostředí, může to změnit, který nástroj s konkrétním názvem je skutečně vyvolán a jak se argumenty předávají mezi nástroji.

Pokud chcete tyto problémy zmírnit při práci s úplnou instalací MSYS2, zkuste zachovat adresáře subsystému msys (/usr/bin, bin) mimo PATH proměnnou prostředí, jak zjistil vcpkg. V Bash můžete změnit PATH pouze pro jedno volání vcpkg:

PATH="${PATH/:\/usr\/bin:\/bin:/:}" ./vcpkg install libpq

Případně můžete spustit vcpkg z běžného příkazového řádku po přidání pouze požadovaného adresáře mingw (např. C:\msys64\mingw64\bin) do PATHsouboru .

Při použití nástroje vcpkg pro CI se standardními imagemi v Azure Pipelines, GitHub Actions nebo podobnými verzemi může výchozí PATH nastavení obsahovat více adresářů, které vytvářejí kombinaci programů MSYS2 z různých instalací. Můžete chtít nastavit požadovaný PATH ručně nebo odebrat adresáře, které obsahují sh.exe, bash.exemsys-2.0.dll nebo cygwin1.dll.

Použití Mingw-w64 k vytváření programů pro Windows v jiných systémech

Ke křížovému kompilačnímu softwaru, který se má spouštět v systému Windows, můžete použít komunitní trojité body vcpkg mingw s nástroji na počítačích s jiným systémem než Windows. Mnoho distribucí Linuxu nabízí tyto sady nástrojů ve volitelných balíčcích s příponou mingw-w64 nebo předponou. Například pro distribuce založené na Debianu byste začali s tímto instalačním příkazem pro sadu nástrojů x64:

sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64

Zabalené verze sad nástrojů Mingw-w64 v distribucích Linuxu můžou být starší verze, které neobsahují některé užitečné funkce nebo opravy chyb. MxE nabízí alternativní nezávislou sadu nástrojů.

V případě bootstrappingu vcpkg naklonujte úložiště GitHub a spusťte bootstrap-vcpkg.sh skript:

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg install zlib:x64-mingw-dynamic