MinGW

MinGW
MinGW
Desarrollador
Proyecto MinGW
www.mingw.org
Información general
Diseñador Colin Peters
Lanzamiento 1 de julio de 1998
Última versión estable 4.5.2
12 de enero de 2011; hace 10 meses (2011-01-12)
Género Compilador
Programado en Ada, C, C++, Fortran, Java, Pascal
Sistema operativo Microsoft Windows
Plataforma Java
Licencia GPL
Estado actual En desarrollo
Idiomas inglés
En español ?

MinGW (Minimalist GNU for Windows), anteriormente conocido como MinGW32, es una implementación de los compiladores GCC para la plataforma Win32, que permite migrar la capacidad de este compilador en entornos Windows. Es un fork de Cygwin en su versión 1.3.3. Además MinGW incluye un conjunto de la API de Win32, permitiendo un desarrollo de aplicaciones nativas para esa plataforma, pudiendo generar ejecutables y bibliotecas usando la API de Windows.[1]

Contenido

Historia

MinGW fue creado por Colin Peters, el 1 de julio de 1998, compilándolo con Cygwin.[2] MinGW se llamaba originariamente mingw32; se quitaron los números del nombre para evitar la implicación que tendría el limitarlo a sistemas de 32 bits.[3] La primera versión nativa para Windows de MinGW fue realizada por Jan-Jaap van der Heijden, quien también tuvo participación en el proyecto GCC; añadiendo también binutils y make.[2] [4] Mumit Khan estuvo a cargo del mantenimiento del proyecto e incluyó al compilador algunas características propias de Windows. Los archivos de cabecera del API de Windows fueron provistos por Anders Norlander. En 2000, el proyecto se trasladó a SourceForge.net para pedir asistencia de la comunidad y centralizar su desarrollo.[2]

MinGW fue seleccionado como Project of the Month en SourceForge en septiembre de 2005.[4]

Características

Soporte de lenguaje de programación

Para lenguajes de programación distintos de C, MinGW utiliza las bibliotecas de tiempo de ejecución GNU (por ejemplo, GNU libstdc ++ para C++).[cita requerida]

Sin embargo, como GCC no proporciona su propia biblioteca C de tiempo de ejecución, el compilador C de MinGW tiene como objetivo la antigua Biblioteca de tiempo de ejecución de C Visual de Microsoft, MSVCRT, que fue lanzado en 1998 y por lo tanto, no incluye soporte para funciones de C99 (menos aún C89); mientras el estar dirigido a MSVCRT supone producir programas tan nativos como es posible, la falta de apoyo de C99 ha causado problemas de portabilidad, particularmente en lo concerniente a los esespecificadores de conversión de estilo printf. Estas cuestiones han sido parcialmente atenuadas por la implementación de una biblioteca de compatibilidad de C99, libmingwex, pero la amplia labor requerida está lejos de completarse y no parece que pueda realizarse plenamente.[5]

Componentes de MinGW

El proyecto de MinGW mantiene y distribuye un número de diferentes componentes y paquetes complementarios, incluidos los diversos puertos de GNU toolchain, tales como GCC y binutils, traducido en paquetes equivalentes.[3] [6] Éstas utilidades pueden utilizarse desde la línea de comandos de Windows o integradas en un IDE. MinGW admite bibliotecas nombradas de acuerdo con los convenios "<name>.lib" and"<name>.dll" además de la habitual convención "lib<name>.a" común en sistemas UNIX-like.

Además, un componente de MinGW, conocido como MSYS (Minimal SYStem) proporciona ports de win32 de un entorno de shell ligero de tipo Unix que incluye rxvt y una selección de herramientas POSIX suficientes para permitir a las secuencias de comandos (scripts) de autoconf ejecutarse.[7] [8]

Los mingwPORTs son añadidos de usuario (contribuciones) a la colección de software MinGW. En lugar de proporcionar estos "complementos" como paquetes binarios precompilados, se suministran en forma de scripts interactivos de shell Bourne, que guía al usuario final a través del proceso de descarga y revisiones (parcheo) del código fuente original automáticamente, para a continuación compilarlo e instalarlo. Los usuarios que deseen construir cualquier aplicación desde un mingwPORT deben instalar primero MinGW y CYGWIN.[9] [10]

La ejecución de archivos de encabezado de Win32 y bibliotecas de importación de Win32 para vincular el tiempo de ejecución son liberados bajo una licencia permisiva,[11] mientras que los portes de GNU se liberan bajo licencia GNU. Están disponibles en el hogar web de MinGW descargas binarias del paquete completo de CYGWIN y utilidades de GNU MinGW individuales.

Comparación con Cygwin

MinGW surgió de una bifurcación de la versión 1.3.3 de Cygwin.[2] Aunque Cygwin y MinGW pueden utilizarse para portar software de Unix a Windows, tienen diferentes enfoques:[12] Cygwin pretende ofrecer una capa POSIX completa (similar a la encontrada en otros sistemas de Unix o Linux) de Windows, sacrificando el rendimiento cuando sea necesario para optimizar la compatibilidad. En consecuencia, este enfoque requiere programas Win32 escritos con Cygwin para ejecutar sobre una biblioteca de compatibilidad copyleftada que debe ser distribuida con el programa, junto con el código fuente del mismo. MinGW pretende proporcionar funcionalidad nativa y rendimiento a través de llamadas a la API de Windows directamente. A diferencia de Cygwin, MinGW no requiere una capa de compatibilidad DLL y por lo tanto los programas no necesitan distribuirse con el código fuente.

Como MinGW depende de llamadas a la API de Win32, no puede proporcionar una API completa POSIX; es incapaz de compilar algunas aplicaciones de Unix que se pueden compilar con Cygwin. Específicamente, esto se aplica a las aplicaciones que requieren la funcionalidad POSIX como fork(), mmap() o ioctl()[12] y aquellos que se espera poder ejecutar en un entorno de POSIX. Las aplicaciones escritas con una biblioteca de plataforma cruzada que sí se ham portado a MinGW, como SDL, wxWidgets, Qt, o GTK+ se suelen compilar fácilmente en MinGW como se haría en Cygwin.

La combinación de MinGW y CYGWIN proporciona un entorno pequeño e independiente que puede cargarse en medios extraíbles sin dejar entradas en el registro de Windows o archivos en el equipo. Al proporcionar más funcionalidad, Cygwin es más complicado de instalar y mantener.

Ejecutables más grandes

Una de las desventajas de MinGW es que los ejecutables que genera son de tamaño más grande que los generados por otros compiladores. Esto ocurre cuando se incluyen los archivos de cabecera estándares de C++ (por ejemplo, #include <iostream>), y se debe a que el compilador vincula todas las bibliotecas dentro del archivo ejecutable de manera estática.

Véase también

Referencias

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • MinGW — Original author(s) Colin Peters Developer(s) MinGW Project Initial release 1 July 1998 Stable release 4.5.2 / January 12, 2011; 10 months ago ( …   Wikipedia

  • MinGW — Minimalist GNU for Windows Тип компилятор Разработчик Colin Peters, Jan Jaap van der Heijden, Mumit Khan, Anders Norlander …   Википедия

  • MinGW — oder Mingw32 (Minimalist GNU for Windows) ist eine Softwareportierung der GNU Entwicklerwerkzeuge (GCC, GDB) auf die Windows Plattform, mit der man Programme für Windows entwickeln kann. MinGW entstand aus dem Cygwin Projekt heraus.[1] Es wird,… …   Deutsch Wikipedia

  • Mingw — oder Mingw32 (Minimalist GNU for Windows) ist eine Softwareportierung der GNU Entwicklerwerkzeuge (GCC, GDB) auf die Windows Plattform, mit der man Programme für Windows entwickeln kann. MinGW entstand aus dem Cygwin Projekt heraus. [1] Es wird,… …   Deutsch Wikipedia

  • Mingw — Développeur MinGW project Dernière version …   Wikipédia en Français

  • MinGW — Développeur MinGW project Dernière version …   Wikipédia en Français

  • MinGW — noun formerly called mingw32 …   Wiktionary

  • MINGW — Minimalist GNU for Windows (Computing » Software) …   Abbreviations dictionary

  • Mingw32 — MinGW oder Mingw32 (Minimalist GNU for Windows) ist eine Softwareportierung der GNU Entwicklerwerkzeuge (GCC, GDB) auf die Windows Plattform, mit der man Programme für Windows entwickeln kann. MinGW entstand aus dem Cygwin Projekt heraus. [1] Es… …   Deutsch Wikipedia

  • MSYS — MinGW MinGW Développeur MinGW project Dernière version …   Wikipédia en Français

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”