2009-10-28 28 views
9

Básicamente quiero compilar C/C++ usando el GCC en Windows. Las dos plataformas que compiten, como yo lo veo, son MinGW y Cygwin. Cada uno tiene sus propios beneficios y limitaciones. MinGW compila para Windows, mientras que Cygwin necesita el .dll de cygwin. Sin embargo, la instalación de bibliotecas en MinGW es difícil, mientras que en cygwin es más fácil, utilizando setup.exe como 'administrador de paquetes'.La mejor manera de configurar un entorno de compilación de Windows para C/C++

Mi pregunta es cuál es la mejor manera de compilar en Windows. ¿Sería mejor usar MinGW y luchar con las bibliotecas (en este caso hay una manera fácil de instalar bibliotecas en MinGW). ¿O debería usar Cygwin? Si es así, ¿cómo hago para compilar sin necesitar el .dll de cygwin, compilar efectivamente para Windows normal?

+0

cuestión subjetiva. Prefiero mingw, porque no está codificando contra una capa de compatibilidad. Suponiendo que desea un entorno gratuito (como en la cerveza), todavía hay algunas opciones que echa de menos: las ediciones Express de Visual Studio, o la versión de línea de comandos de VC++. – asveikau

Respuesta

7

La manera más fácil y mejor de compilar en Windows es usar visual studio expres s. Es gratis. Una buena razón para usar cygwin es para construcciones multiplataforma. Una buena razón para usar gcc es que es compatible con algunos compiladores que el compilador de Microsoft no ofrece.

Pero en general VC++ Express es el camino a seguir para el desarrollo de Windows solamente.

+0

Si está usando Visual Studio Express, no puede hacer aplicaciones comerciales legalmente sin violar los términos del servicio. – Andres

+10

@Andres: esto es simplemente falso. Consulte http://www.microsoft.com/express/support/faq/ –

+1

@Andres: # ¿Puedo usar Express Editions para uso comercial? Sí, no hay restricciones de licencia para las aplicaciones creadas con Visual Studio Express Editions. –

5

siempre existe la opción de usar -mno-cygwin con Cygwin para compilar las librerías de Windows, como MinGW hace:

gcc -mno-cygwin file.c -o test 

No es una elección fácil y depende principalmente de cuánto va a depender de otras bibliotecas. Cygwin realmente agrega una capa adicional, que es más pesada pero "emula" el entorno Linux mejor que MinGW.

Editar:

Qt Creator le permite compilar con MinGW en Windows (y gcc en Linux, ...), tiene un IDE que hace que la depuración más amigable que el BGF. Si necesita bibliotecas, aún tiene la opción de usar las bibliotecas Qt. Esa sería una buena solución alternativa para Visual Studio si realmente quiere apegarse a gcc para una futura portabilidad.

+0

El indicador -mno-cygwin no crea un binario estático, sino que crea uno que no está vinculado al cygwin.dll, en esencia, un programa win32 "simple". En la práctica (cosas de módulo como generación de código diferente de diferentes versiones de compilador) es exactamente lo que obtienes del compilador de mingw. –

+0

Derecha, gracias por señalar eso, Andy, voy a editar la respuesta. – RedGlyph

+0

@Andy: Realmente no lo sé, pero ¿Cygwin libc (y posiblemente algunas otras librerías) no dependería de cygwin.dll? Es decir. si haces -mno-cygwin, ¿no estarías limitado solo a la API de Win32? –

0

Hay un GCC empaquetado MinGW fácil de instalar en equation.com. Haga clic en "Herramientas de programación" y luego "Fortran, C, C++", descargue la versión que prefiera, instale y utilice.

3

Es posible que desee consultar CodeBlocks. Generalmente se usa para construir aplicaciones WxWidgets, pero se ajusta muy bien a MinGW.

+0

Lo uso para jugar con el soporte de C++ 0x de gcc 4.4. A veces se cuelga pero funciona en el caso normal. – jmucchiello

1

Qt Creator viene con MinGW como estándar y se puede utilizar para construir proyectos que realmente no usan el marco Qt.

+0

Yo diría que vaya con Mingw, aunque solo sea por Qt Creator. Es muy bueno. –

+0

Ya había mencionado eso en mi publicación (excepto el enlace) ;-) Pero sí, esa sería mi primera opción para desarrollar con gcc. Esperemos que con una actualización a 4.6 pronto. – RedGlyph

0

Un posible método es usar CMake que puede construir el proyecto de Visual Studio desde sus fuentes y luego compilar desde Visual Studio. También puede construir proyectos para otros IDEs, por lo que puede usar plataformas cruzadas.

1

En realidad, existe la opción n. ° 3: si su edición de Windows lo permite, puede instalar Microsoft Services For Unix/Subsystem for Unix Applications, y luego obtener gcc de SUACommunity. También tiene un administrador de paquetes. De esas 3 opciones, esto le dará el comportamiento más cercano a un verdadero sistema Unix.

Sin embargo, las aplicaciones resultantes no son aplicaciones Win32; son aplicaciones SUA y requerirán que ejecute SUA. Si escribe código para usted, generalmente no es un problema si escribe código para usted, pero si desea escribir y distribuir una aplicación de Windows adecuada, le sugiero que se mantenga alejado de cualquier cosa que intente emular Unix, por lo que MinGW sí lo es.

0

Creo que la respuesta depende de si tiene la intención de utilizar bibliotecas o compilar programas que están destinados a POSIX o un objetivo basado en POSIX. Para eso está diseñado Cygwin, mientras que MinGW está destinado a compilar programas dirigidos a Windows utilizando GCC.

Cuestiones relacionadas