Forum: PC-Programmierung Beziehung MinGW & MSYS & Cygwin


von A. C. (michael1988)


Lesenswert?

Hallo zusammen,

ich habe in letzter Zeit öfter mit der git bash auf Windows gearbeitet. 
Ich verstehe leider nicht ganz genau, was hinter der git bash steckt, 
ein Kollege meinte das da MinGW dahinter steckt.

Es verwirrt mich etwas, weil ich dachte, dass MinGW eine Portierung des 
GCC auf Windows ist, der NATIV für Windows Programme kompilieren kann 
und dafür die "Microsoft C runtime" verwendet.
(Ist die  Microsoft C runtime soetwas wie die libc auf Linux?).

Die damit kompilierten Programm sollten dann ohne Verwendung weiterer 
Dlls auf Windows laufen, im Gegensatz zu in Cygwin kompilierte 
Programme, da diese die Abstraktion der Cygwin.dll verwenden.

Und dabei dachte ich dann auch, dass eher MSYS ein System ist, welches 
eine Linux-Kommandozeile mit einigen Tools bereit stellt (wie zum 
Beispiel sh.exe).

Ich habe nämlich auch gelesen, dass einige Hilfsprogramme wie
•  bash,
•  make,
•  gawk
•  and grep

teilweise auch in MinGW implementiert sind (es heißt ja auch MInimalist 
Gnu for Windows), dass unter MinGW aber Windowspfade gelten, unter MSYS 
aber Linux Pfade??

Was genau ist denn jetzt MinGW und wo ist die Abgrenzung/Schnittstellle 
zu MSYS?

Ich danke euch für eure Antworten, ich komme hier mit meinem Verständnis 
leider nicht weiter.

Viele Grüße

PS: Hier noch einige Definitionen von MinGW die ich so gefunden habe:



MinGW ist eine Portierung des GCC auf Windows, der NATIV für Windows 
Programme kompilieren kann und dafür die " Microsoft C runtime" 
verwendet.
(Ist die  Microsoft C runtime soetwas wie die libc auf Linux?)

MinGW, a contraction of "Minimalist GNU for Windows", is a minimalist 
development environment for native Microsoft Windows applications.

MinGW provides a complete Open Source programming tool set which is 
suitable for the development of native MS-Windows applications, and 
which do not depend on any 3rd-party C-Runtime DLLs.
(It does depend on a number of DLLs provided by Microsoft themselves, as 
components of the operating system; most notable among these is 
MSVCRT.DLL, the Microsoft C runtime library.

MinGW compilers provide access to the functionality of the Microsoft C 
runtime and some language-specific runtimes.
MinGW, being Minimalist, does not, and never will, attempt to provide a 
POSIX runtime environment for POSIX application deployment on 
MS-Windows. If you want POSIX application deployment on this platform, 
please consider Cygwin instead.

Es wird oft in Kombination mit MSYS verwendet. Dieses stellt eine 
Unix-artige Shell zur Verfügung, in der unter anderem configure-Skripte 
gestartet werden können.

von User (Gast)


Angehängte Dateien:

Lesenswert?

> (Ist die  Microsoft C runtime soetwas wie die libc auf Linux?)

Kannst ja selber mal schauen, was die MSVCRT.DLL so exportiert 
(Screenshot).

von User (Gast)


Lesenswert?

Eine MinGW-Installation enthält MSYS.

Softwarepakete, die Du kompilieren willst, bringen häufig diese 
ekelhaften Makefiles und Unix-artige Scriptdateien mit.

Du startest also die MSYS-Konsole, navigierst zum Paket, und gibst z.B. 
Befehle ein:

./autogen.sh
./configure
make

MSYS sorgt dafür, dass die Skripte laufen können. Make greift auf die 
MinGW-Compiler zurück um zu bauen.

(Mit den MSYS-Binaries kann man sich übrigens Batchdateien enorm 
aufwerten - grep oder awk oder anderes Nützliches (plus MSYS-DLL) in 
einen kleinen Unterordner kopieren und in der Batchdatei aufrufen.)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.