MinGW

2012-03-30 24 views
5

Ben Visual C++ derleyicisi alternatif olarak, 64-bit MinGW derleyici güvenilirliği konusunda endişelerim var. ÖrneğinMinGW

, C++ kod, gelen MinGW 64 bit Windows altında benzer güvenilir yürütülebilir/kütüphaneler üretecek oluşturur ve GCC 4.6.2 kullanarak Linux altında mükemmel çalışır varsayarak?

Cygwin güvenirlik açısından daha iyi bir seçenek var mı? Visual C++ derleyicisine ne değildir?

+0

, ben kodu ("çağıran sözleşmeler" hariç) aynı olması beklenebilir. –

cevap

14

Öncelikle bazı yanlış anlamalar:

  1. MinGW (.org) kendi çalışma zamanı 64-bit sürümünü sağlamaz. MinGW-w64, 32 bit CRT'ye ek olarak yapar. Ayrıca ARM desteği üzerinde çalışıyorlar. Ve çeşitli ek API'leri (Win32 ve diğerleri) destekleyin.

  2. Cygwin < -> MinGW-w64: Cygwin, MS CRT'yi (msvcrt.dll) kullanmaz. Bunun yerine Cygwin uygulamanız ve sisteminizin OS kütüphaneleri (kernel32.dll, ntdll.dll, vb), yani cygwin1.dll arasında bir POSIX uyumluluk katmanı ekler. Sonra soruya On

...

Ben MinGW-w64 derleyiciler çok iyi buldum ve GCC 4.6 ve üzeri olması (aslında, 4.5.1 ve üstü) iyi üretme çok yetenekli Windows için 64 bit kod. Lütfen MinGW'nin msvcrt.dll ile aynı C API'sini sağladığını unutmayın, bu nedenle msdn.com'a dökümantasyon için gidin (ve belgelerin "MSVC++ 2003" sürümüne baktığınızdan emin olun, bazı işlevler daha yeni çalışma zamanlarıyla farklılık gösterir), GCC olduğundan, glibc belgelerinin aniden Windows için geçerli olduğunu düşünün. Kodunuzun çapraz platform olması gerekecek. Ayrıca x64 Windows'ta sizeof(long)!=sizeof(T*) olduğunu unutmayın. * Nix veya x86 Windows kodu x64 Windows'a aktarılırken sık karşılaşılan bir hata. Standart ve diğer kütüphanelerin Windows'a özgü kısmında hatalar olmadıkça

+1

Teşekkür: Cygwin hiç msvcrt kullanmaz, bu da bunların yerine kendi C çalışma zamanını sağlar. Güncelleme: Cygwin'in artık 64 bit sürümü var. – Nick

+0

GCC 4.5.1+/Düzeltme w açıklama ve MinGW ile deneyiminizi paylaştığınız için – Yaakov

+0

@Yaakov Siz doğru. Güncelleme sonrası – rubenvb