Une explication simple de ce Qu'est MinGW

Je suis un utilisateur passionné de Python et il semble que J'ai besoin que MinGW soit installé sur ma machine Windows pour compiler certaines bibliothèques. Je suis un peu confus à propos de MinGW et GCC. Voici ma question (d'un vrai point de vue factice):

Donc Python est un langage à la fois interprété et compilé. Il y a des implémentations Linux et Windows de Python que l'on installe simplement et utilisé le binaire à exécuter son code. Ils sont livrés avec un tas de bibliothèques intégrées que vous pouvez utiliser. C'est la même chose avec Ruby de ce que j'ai lu.

Maintenant, j'ai fait un tout petit a de C et je sais que l'on a a pour le compiler. Il a ses bibliothèques intégrées qui semblent être appelées fichiers d'en-tête que vous pouvez utiliser. Maintenant, à l'école, C, écrivait du code dans un IDE de type vi appelé Turbo-C, puis frappait F9 pour le compiler. C'est à peu près là où mon éducation C se termine.

Qu'est-ce que MinGW et QU'est-ce que GCC? Je travaille principalement sur les systèmes Windows et j'ai même récemment commencé à utiliser Cygwin. Ne sont-ils pas les mêmes?

Une explication simple frappant ces zones serait utile.

(mes excuses si ce post semble stupide / stupide. Je pensais que je voudrais poser ici. Ignorer ces bits de base n'a jamais fait de personne un meilleur programmeur.)

Merci à tous.

31
demandé sur Mridang Agarwalla 2011-10-17 10:49:54

5 réponses

MinGW est une chaîne D'outils GCC complète (y compris une demi-douzaine de frontends, tels que C, c++, Ada, Go et autres joyeusetés) pour la plate-forme Windows qui compile et relie la bibliothèque D'exécution du composant Windows OS C dans msvcrt.DLL. Plutôt qu'il essaie d'être minimale (d'où le nom).

Cela signifie, autre que Cygwin, MinGW ne tente pas d'offrir une couche POSIX complète sur le dessus de Windows, mais d'autre part, il ne nécessite pas de lien avec une compatibilité spéciale bibliothèque.
Par conséquent, n'a pas d'implications de licence GPL pour les programmes que vous écrivez (exception notable: les bibliothèques de profilage, mais vous ne les distribuerez normalement pas, ce qui n'a pas d'importance).

Le nouveau MinGW-w64 est livré avec une liaison API Windows complète à peu près 99% (à l'exclusion de ATL et autres), y compris le support x64 et les implémentations ARM expérimentales. Vous pouvez parfois trouver une constante indéfinie exotique, mais pour quoi 99% des gens utilisent 99% de la temps, il fonctionne parfaitement bien.

Vous pouvez également utiliser la plus grande partie de ce qui est dans POSIX, tant qu'il est implémenté sous une forme ou une autre sous Windows. La seule chose POSIX majeure qui ne fonctionne pas avec MinGW est fork, simplement parce qu'il n'y a pas une telle chose sous Windows (Cygwin subit beaucoup de douleur pour l'implémenter).
Il y a quelques autres choses mineures, mais dans l'ensemble, la plupart des choses fonctionnent de toute façon.

Donc, dans une phrase très très simplifiée: MinGW (- w64) est un " sans fioritures compilateur thingie " qui vous permet d'écrire des exécutables binaires natifs pour Windows, non seulement en C et c++, mais aussi dans d'autres langues.

22
répondu Damon 2016-05-24 13:03:48

Pour compiler le programme C, vous avez besoin d'une implémentation C pour votre ordinateur spécifique.

Les implémentations C consistent essentiellement en un compilateur (son préprocesseur et ses en-têtes) et une bibliothèque (le code exécutable prêt à l'emploi).

Sur un ordinateur avec Windows installé, la bibliothèque qui contient le plus de code exécutable prêt à l'emploi n'est pas compatible avec le compilateur gcc... donc, pour utiliser ce compilateur dans Windows, vous avez besoin d'une bibliothèque différente: c'est là que MinGW entre. MinGW fournit, parmi d'autres choses, la(Les) bibliothèque (S) nécessaire (s) pour faire une implémentation C avec gcc.


la bibliothèque Windows et MSVC font ensemble une implémentation différente.

8
répondu pmg 2011-10-17 10:04:37

MinGW est une suite d'outils de développement qui contient GCC (entre autres), et GCC est un compilateur C dans cette suite.

2
répondu MVS 2011-10-17 06:55:04

MinGW est une implémentation de la plupart des utilitaires de construction GNU, comme gcc et make sur windows, alors que gcc n'est que le compilateur. Cygwin est un paquet beaucoup plus grand et sophistiqué, qui installe beaucoup plus que MinGW.

2
répondu Fran Borcic 2011-10-17 06:56:11

La seule raison d'existence de MinGW est de fournir un environnement de type linux aux développeurs qui ne sont pas capables d'utiliser des outils Windows natifs. Il est inférieur à presque tous les égards à Microsoft tooolchains sur les plates-formes Win32/Win64, mais il fournit un environnement où le développeur linux n'a pas à apprendre quelque chose de nouveau et il/elle peut compiler du code linux presque sans modifications. C'est une approche discutable, mais beaucoup de gens trouvent que la commodité plus importante que d'autres aspects de la développement . Cela n'a rien à voir avec C ou C++ comme indiqué dans les réponses précédentes, cela a tout à voir avec le développeur d'environnement. Argument à propos de GNU toolchains sur windows et son nessessety, est juste cela-un argument

Compilateur GCC-unix / linux, MinGW-approximation de GCC sur l'environnement Windows, Compilateur Microsoft et compilateur Intel-plus de la même chose que les noms suggèrent (les deux produisent beaucoup , bien meilleurs programmes sur Windows puis MinGW, btw)

-1
répondu Real Name 2016-05-24 13:05:02