Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dekont
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!
Mingw-w64 topluluk üçlüleri
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!
Windows'da Mingw-w64'u yerel olarak kullanma
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
Farklı yüklemelerin karıştırılmasını önleme
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) PATHekledikten 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.exemsys-2.0.dll cygwin1.dllveya içeren sh.exedizinleri kaldırmak isteyebilirsiniz.
Diğer sistemlerde Windows programları oluşturmak için Mingw-w64 kullanma
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