Mingw-w64
Not
MinGW, vcpkg deposunun CI işleminin bir parçası olarak test edilmediğinden, kitaplık güncelleştirmelerinin bir parçası olarak regresyonlar oluşabilir. Desteği geliştiren PR'ler kabul edilir!
vcpkg, Mingw-w64 için x64, x86, arm64 ve arm topluluk üçlülerini içerir. Visual Studio'ya bağımlı değildir ve Windows'da yerel olarak ve diğer işletim sistemlerinde çapraz derleme için kullanılabilir. Statik ve dinamik bağlama arasında seçim yaparak her üçlüden iki farklı değişken vardır. Gerçek araçların (g++ vb.) belirli ön eklerle adlandırılması beklenir.
Mimari | vcpkg topluluk üçlüleri | Araç adı ön eki |
---|---|---|
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- |
Kol | arm-mingw-dynamic, arm-mingw-static | armv7-w64-mingw32- |
Bu üçlüler sürekli tümleştirme tarafından test edilmediğinden, birçok bağlantı noktası derlenmez ve mevcut bağlantı noktaları bile bağlantı noktası güncelleştirmelerinde bozulabilir. Bu nedenle, topluluk katılımı çok önemlidir!
MSYS2 ile, Windows bilgisayarda Mingw-w64 ile bağlantı noktaları oluşturmak için kolayca tam bir ortam oluşturmak mümkündür.
Yerel Windows ortamları için yazılım oluştururken, MSYS2'nin bir mingw alt sistemini kullanmanız ve bu alt sistem için bazı paketler (belirli bir ön ek ile) yüklemeniz gerekir.
architecture | vcpkg üçlüleri | Alt | paket ön eki |
---|---|---|---|
x64 | x64-mingw-dynamic, x64-mingw-static | mingw64 | mingw-w64-x86_64- |
x86 | x86-mingw-dynamic, x86-mingw-static | mingw32 | mingw-w64-i686- |
MSYS2'nin temel yüklemesinin ardından, yazılım geliştirme için birkaç ek paket yüklemeniz gerekir; örneğin, x64:
pacman -S --needed git base-devel mingw-w64-x86_64-toolchain
Etkin alt sistem, MSYS2 MinGW uygulaması çalıştırılarak seçilir veya çalışan bir terminalde
source shell mingw64 # for x64, or "mingw32" for x86
vcpkg bootstrapping bootstrap-vcpkg.bat çalıştırılarak yapılmalıdır. Bu komut resmi vcpkg.exe dosyasını indirir.
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.bat
Paketleri derlemek için vcpkg'ye mingw üçlüslerini kullanmak istediğinizi söylemeniz gerekir. Bu farklı şekillerde yapılabilir. Visual Studio yüklü olmadığında, konak üçlüs değerini de mingw olarak ayarlamanız gerekir. Konak bağımlılıklarını çözmek için bu gereklidir. Kolaylık sağlamak için ortam değişkenlerini kullanarak her iki üçlüleri de ayarlayabilirsiniz:
export VCPKG_DEFAULT_TRIPLET=x64-mingw-dynamic
export VCPKG_DEFAULT_HOST_TRIPLET=x64-mingw-dynamic
Artık kurulumunuzu test edebilirsiniz:
./vcpkg install zlib
MSYS2 projesi, "diğer MSYS2 yüklemelerinden , Cygwin yüklemelerinden, derleyici araç zincirlerinden ve hatta diğer çeşitli programlardan gelen programlarda karıştırmanın desteklenmediği ve muhtemelen beklenmedik yollarla işleri bozacağı" konusunda açıkça uyarır. Örneğin, komut satırı bağımsız değişkenlerinin alıntı ve kaçış ile doğru şekilde geçirilmesi başarısız olabilir.
Ancak vcpkg bağlantı noktaları msys2 yüklemelerini örtük olarak oluşturur; örneğin, otomatik kapsayıcıyı temel alan paketlerle başa çıkmak için gereken diğer çeşitli derleme araçları için pkg-config
ve için. Özellikle, bağlantı noktaları araçların dizininden ortam değişkenine PATH
eklendiğinde, bu, belirli bir ada sahip olan aracın gerçekte çağrıldığını ve bağımsız değişkenlerin araçlar arasında nasıl geçirildiğini değiştirebilir.
Tam MSYS2 yüklemesi ile çalışırken bu tür sorunları azaltmak için, msys alt sisteminin (/usr/bin
, bin
) dizinlerini vcpkg tarafından bulunan ortam değişkeninin PATH
dışında tutmaya çalışın. Bash'te yalnızca tek bir vcpkg çağrısı için değiştirebilirsiniz PATH
:
PATH="${PATH/:\/usr\/bin:\/bin:/:}" ./vcpkg install libpq
Alternatif olarak, öğesine yalnızca istenen mingw dizinini (örn. C:\msys64\mingw64\bin
) PATH
ekledikten sonra normal bir Komut İsteminden vcpkg çalıştırabilirsiniz.
Azure Pipelines, Github Actions veya benzeri standart görüntülerle CI için vcpkg kullanırken, varsayılan değer PATH
farklı yüklemelerden MSYS2 programlarının bir karışımını oluşturan daha fazla dizin içerebilir. İstediğinizi PATH
el ile ayarlamak veya , bash.exe
msys-2.0.dll
cygwin1.dll
veya içeren sh.exe
dizinleri kaldırmak isteyebilirsiniz.
Windows'da çalıştırılacak yazılımları çapraz derlemek için vcpkg mingw topluluk üçlülerini Windows olmayan bilgisayarlardaki araç zincirleriyle kullanabilirsiniz. Birçok Linux dağıtımı, mingw-w64 soneki veya ön eki olan isteğe bağlı paketlerde bu tür araç zincirleri sunar. Örneğin, Debian tabanlı dağıtımlar için x64 araç zinciri için şu yükleme komutuyla başlarsınız:
sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64
Linux dağıtımlarında Mingw-w64 araç zincirlerinin paketlenmiş sürümleri, bazı yararlı özellikler veya hata düzeltmeleri olmayan eski sürümler olabilir. MXE tarafından alternatif bir bağımsız araç zinciri sunulur.
vcpkg bootstrapping için github deposunu kopyalayın ve betiği çalıştırın bootstrap-vcpkg.sh
:
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg install zlib:x64-mingw-dynamic
vcpkg geri bildirimi
vcpkg, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: