2010-04-23 19 views
7

Me gustaría hacer un gran proyecto mío que pueda construirse en plataformas Windows. El proyecto en sí está escrito en C/C++ según los estándares POSIX, con algunas dependencias de biblioteca como libxml2, libcurl, etc. Soy más un desarrollador de Linux que un desarrollador de Windows, así que no tengo idea de qué conjunto de compiladores debería usar para portar el código. ¿Cuál ofrece más compatibilidad con gcc 4.4.3 que estoy usando en este momento?Mejor entorno para portar código C/C++ de Linux a Windows

Mi proyecto necesita flex y bison, ¿hay algún entorno "listo para usar" para portar tales proyectos a las plataformas de Windows?

Gracias.

+3

Un agradable ambiente aireado con luz solar con cómodas sillas y café de barril. –

Respuesta

11

Si fuera yo, me gustaría instalar los siguientes:

Este es el entorno donde realizo mi propia programación, y funciona muy bien. Si quiere un IDE, le recomiendo Code::Blocks, pero ambos gvim y emacs también están disponibles para Windows.

+0

Eso es todo lo que necesito, gracias :) –

+0

Btw, http://sourceforge.net/projects/mingw/files/ tiene las herramientas más actualizadas en Unix/Linux para Windows. @Simone: Esa URL tiene la versión más actualizada de Bison & Flex que necesita. GNUWin32 tiene versiones históricas, pero son bastante buenas. Depende de usted elegir. – Viet

+0

Neil - gracias por señalar Twilight Dragon - Me he sentido frustrado con los instaladores de mingw.org y el calendario de lanzamiento lento y no sabía que las distribuciones alternativas estaban por ahí. –

1

Tengo muchas dudas de que ni cygwin ni mingw tengan hasta 4.4.3. Apostaría a poder actualizar el compilador en mingw para que sea más fácil.

Necesitarás cygwin si estás usando alguna cosa específica de Linux. Las bibliotecas que has listado no son un problema, no creo. POSIX podría ser, dependiendo.

+0

MinGW es en realidad de hasta 4,5. Puede obtenerlo en http://nuwen.net/mingw.html –

+0

@Neil: la distribución oficial de MinGW tiene garantía de calidad y calendario de entregas. Proyectos como KDE y Nokia Qt dependen del MinGW oficial. Por cierto, no siempre es una buena idea saltar de 4.4.3 a 4.5.0, en caso de incompatibilidad. Por cierto, el MinGW oficial también tiene 4.5.0. La versión anterior que distribuye es 4.4.0, no la parchada/actualizada 4.4.3. – Viet

+0

@Viet No he tenido problemas (al contrario, de hecho) con la versión TD que recomendé en mi respuesta. Nunca he usado la versión nuwen en serio, pero es fácil de instalar, así que pensé en mencionarla. Y haré casi cualquier cosa para evitar usar el sitio web de MinGW :-) –

4

Si no usa ninguna llamada al sistema UNIX, puede ejecutar libremente en Windows. También hay flex & bison para Windows: http://gnuwin32.sourceforge.net/packages.html. Puede continuar con MinGW: http://www.mingw.org/.

Si tiene llamadas al sistema UNIX, entonces tiene que usar cygwin: http://www.cygwin.com/, http://en.wikipedia.org/wiki/Cygwin.

+0

Probablemente voy a portar el código usando las directivas de precompilación para Determine el sistema operativo en el que estoy conectado, por lo que incluso si hay algunas llamadas Unix, no es un gran problema. –

+0

Si no le importa escribir llamadas al sistema específicas del sistema operativo para que las macros con MinGW sean suficientes. Si escribir un código de Windows para reemplazar esas llamadas al sistema específicas de UNIX es un problema para usted, use Cygwin. Pero recuerde que DLL por Cygwin tiene GPL: http://www.cygwin.com/ml/cygwin/1999-07/msg00348.html. – Viet

1

Una buena nueva alternativa es Cygnal. La idea básica:

  • En primer lugar, compilar el código de Cygwin para Cygwin usando su herramienta "nativa" (no MinGW).
  • A continuación, implemente el programa con la versión Cygnal de la DLL de Cygwin.

Cygnal es un tenedor de la primaria DLL de Cygwin que cambia ciertos comportamientos que son demasiado Unix.

El lema de Cygwin es "obtener esa sensación de Linux en Windows". Cygnal tonifica esa sensación; devuelve parte de la sensación de Windows a los programas, para que esos programas funcionen para usuarios de Windows fuera del entorno de Cygwin utilizando las convenciones de Windows.

Los programas comprenden rutas nativas, y tal. No se elimina ninguna de la funcionalidad de API enriquecida en Cygwin, solo se ajusta una pequeña parte de la misma.

Cuestiones relacionadas