12
votes

Pourquoi Mingw existe-t-il?

MSYS et systèmes de construction de type UNIX à part; Pourquoi Mingw existe-t-il? Ce que je veux dire, c'est pourquoi Win32 / 64 n'est-il qu'une autre cible disponible dans "Vanilla GCC"? Y a-t-il des raisons techniques à cela ou sont-ils "politiques"? Il me semblerait qu'il n'y ait rien de spécial sur la plate-forme Windows qui rendrait un port de GCC à celui-ci "incompatible" avec le GCC d'origine.


1 commentaires

Quelle question très exticive. C'est peut-être pour la raison pour laquelle tous ces philosophes de restauration deviennent toujours des fraises.


4 Réponses :


7
votes

MINGW n'est pas que les compilateurs - ce sont également les bibliothèques et les en-têtes (et quels que soient les autres fichiers de support dont vous pourriez avoir besoin).

GCC est juste un compilateur. MINGW est un environnement complet.


3 commentaires

GCC est une collection de compilateurs.


Cela signifie-t-il que je pourrais télécharger la source de la GCC, compiler un compilateur ciblant Win32 / 64 et compiler le code avec elle (sauf qu'il n'y a pas de bibliothèques et d'en-têtes)?


Vous pouvez construire un compilateur qui créera des fichiers PE, de sorte que tout ce que vous êtes vraiment en train de manquer, c'est que les bibliothèques et les en-têtes pour pouvoir faire quelque chose d'utile avec cela. Vous allez également manquer des choses comme CRT0.



2
votes

Eh bien, alors que vous pouvez utiliser CROISS Compiler pour produire des codes binaires Win32 / 64 de GCC, une personne doit porter toutes les bibliothèques d'exécution C à travers. Mingw et Cygwin sont créés à cette fin.


0 commentaires

3
votes

Mingw est destiné à permettre un portage facile des applications POSIX à Windows. C'est simplement une couche "plus mince" que Cygwin, de sorte que tout pourrait fonctionner où Windows est trop différent. Cygwin permet de fournir suffisamment d'isolation que même les outils de script pour créer et générer du code exécuté.

EDIT: Microsoft aime tellement faire des normes propres et souhaiter y mettre une marque propre sur les choses pour lesquelles des normes ouvertes existent déjà. I.E. OpenGL -> DirectX, Java -> .NET, Opencl est la prochaine norme qu'ils souhaitent rejeter. Cela en fait un peu de douleur pour un projet non sponsorisé pour les soutenir comme une cible. Ils se sont toujours détournés de tout ce qui permet un développement facile de la plateforme croisée, car ils ne veulent que pour développer votre application pour y compris le système d'exploitation. C'est une stratégie marketing, contrôler la marque, contrôler la plate-forme et le rendre douloureux pour que les gens soutiennent d'autres OSES. MINGW est requis car GCC peut générer du code X86, mais même le support d'exécution le plus basique est différent de l'OSES basée sur POSIX.


0 commentaires

0
votes

du site principal de Mingw

Offert en format de package binaire facilement installé, pour un déploiement natif sur MS-Windows ou construit par l'utilisateur à partir de la source, pour une utilisation interrogée sur UNIX ou GNU / Linux, la suite exploite les DLL standard de Microsoft pour fournir le C- Runtime et API Windows.


0 commentaires