MinGW oder Cygwin-GCC?
Ich installieren möchte eine GCC-compiler in Windows für die Eclipse-IDE. Ich weiß, es gibt zwei Optionen: MinGW GCC oder Cygwin-GCC. Welche ist besser für Eclipse CDT? Irgendwelche Erfahrungen oder Vorschläge werden sehr geschätzt.
Verwenden Sie, was Sie möchten. Ich würde empfehlen, gehen für MinGW, diese Weise vermeiden Sie lästige cygwin1.dll Abhängigkeit.
mögliche Duplikate von Was ist der Unterschied zwischen Cygwin und MinGW?
mögliche Duplikate von Was ist der Unterschied zwischen Cygwin und MinGW?
InformationsquelleAutor tonga | 2012-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendung von Cygwin bedeutet, dass Ihr Programm wird abhängig sein
cygwin1.dll
, die im wesentlichen eine Schicht, die erlaubt, dass die POSIX-Funktionalität in einer Windows-Umgebung. Kompilieren mit der standard MinGW GCC bietet keine solche Abhängigkeit. Dies bedeutet jedoch, wenn Sie beabsichtigen, zu kompilieren mit MinGW-GCC, die Sie nicht haben Zugang zu POSIX-Funktionen wiefork()
undexec()
.Weitere Informationen über die Unterschiede zwischen Cygwin und MinGW, siehe hier.
Es unterstützt die pthread-da gibt es eine Windows-Implementierung. Es gerade passiert, dass sein Windows-Implementierungen von einigen POSIX-Funktionen, wie sockets und pipes an. Einige Implementierungen (wie Steckdosen) sind fast identisch mit Ihren POSIX-Kollegen, aber andere sind völlig anders (wie Rohre). MinGW ist nur ein port von GCC, es nicht versucht zu emulieren POSIX-Funktionen für Windows, weil Windows nicht POSIX-konformen system. Das ist, wo Cygwin kommt. Sie können denken, Cygwin als port bietet eine Implementierung des POSIX-Funktionen in Windows.
wardd, vielen Dank für die Erklärung in großen details. Dies ist sehr hilfreich für das Verständnis der Unterschied zwischen MinGW und Cygwin über POSIX-Kompatibilität.
InformationsquelleAutor wardd
Wikipedia Sagt:
MinGW
Gabel von version 1.3.3 derCygwin
. Obwohl beideCygwin
undMinGW
können verwendet werden, um portUNIX
softwareWindows
Sie haben unterschiedliche Ansätze:Cygwin
zielt darauf ab, eine vollständigePOSIX layer
bietet Emulationen für verschiedene Systemaufrufe und Bibliotheken, die es gibt aufLinux
,UNIX
, und dieBSD
Varianten. DiePOSIX layer
läuft auf derWindows
, performance-Einbußen, wenn dies für die Kompatibilität. Dementsprechend erfordert dieser AnsatzWindows
Programme geschrieben mitCygwin
zu laufen, auf der Spitze einer Copyleft-Kompatibilität-Bibliothek, die verteilt werden müssen, mit dem Programm, zusammen mit dem Programmsource code
.MinGW
zielt auf die native Funktionalität und Leistung über einen direktenWindows API calls
. Im Gegensatz zuCygwin
,MinGW
nicht erforderlich, eine Kompatibilität SchichtDLL
und damit Programme müssen nicht verteilt werden, mitsource code
.Weil
MinGW
ist abhängig vonWindows API calls
, es kann nicht eine vollständigePOSIX API
; es ist nicht in der Lage zu kompilieren, einigeUNIX applications
kompiliert werden können mitCygwin
. Insbesondere gilt dies für Anwendungen, die erfordern, dassPOSIX
Funktionalität wiefork()
,mmap()
oderioctl()
und diejenigen, die erwarten, in einemPOSIX environment
. Anwendungen, die mit einemcross-platform library
hat selbst portiert wurdeMinGW
wieSDL
,wxWidgets
,Qt
oderGTK+
, wird in der Regel kompilieren nicht so leicht inMinGW
als würden Sie inCygwin
.Die Kombination von
MinGW
undMSYS
bietet eine kleine, in sich geschlossene Umgebung, die geladen werden können, auf Wechselmedien, ohne Einträge in der registry oder Dateien auf dem computer.Cygwin
Portable bietet eine ähnliche Funktion. Durch die Bereitstellung von mehr FunktionalitätCygwin
komplizierter zu installieren und zu warten.Ist es auch möglich
cross-compile Windows applications
mitMinGW-GCC under POSIX systems
. Dies bedeutet, dass Entwickler nicht brauchen, eine Windows-installation mitMSYS
zum kompilieren von software, die läuft aufWindows
ohneCygwin
.InformationsquelleAutor PersianGulf
Persönlich mag ich Cygwin besser, es hat eine Menge von Optionen für die installation und es fühlt sich viel wie das terminal finden Sie auf einer Linux-Maschine. Es bietet eine ziemlich umfangreiche Gruppe von Linux-ähnlichen Fähigkeiten, etwas, dass Windows nicht auf kläglich.
InformationsquelleAutor earl3s
Cygwin und Mingw sind keine austauschbaren alternativen. Cygwin wird verwendet, um zu kompilieren mit POSIX-API-Programme, Mingw verwendet wird, kompilieren Sie Windows-API-Programme.
Wählte eine oder die andere je nachdem, welche Art Programm Sie gehen zu schreiben.
InformationsquelleAutor chill
Meine offhand Gedanken sind, wenn Sie brauchen, cygwin, müssen Sie es. Zum Beispiel kompilieren von Programmen, die entwickelt wurden, für Unix und symbolische links-und shell-Skripte in den build-system.
Wenn Sie don ' T brauchen es, Sie wollen es nicht. Und kompilieren unter linux auf einer virtuellen Maschine ist oft eine bessere Wahl als die cygwin-route.
Also mingw ist völlig in Ordnung. Funktioniert gut, einfach zu bedienen.
Auch: Sie überlegen, codelite (www.codelite.org) anstelle von Eclipse.
Ich vergaß zu erwähnen, codelite kommt im Paket mit mingw. Klicken Sie auf installieren und fertig.
InformationsquelleAutor Gibbon1