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.
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!
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
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 PATH
souboru .
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.exe
msys-2.0.dll
nebo cygwin1.dll
.
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
Zpětná vazba k produktu vcpkg
vcpkg je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: