2012-06-07 10 views
7

Pensé que escribiría algo en C++ en lugar de algunos idiomas interpretados (porque necesito el rendimiento para algo simple) y probé diferentes herramientas.Compilador simple de C++ para Windows

Primero encontré cygwin porque tenía g ++, pero se requiere cygwin.dll para ejecutar el exe.

Luego probé mingw, pero parece que necesito incluir algunos dll con la distribución como libgcc y libgstd o algo así, lo que hincha el ejecutable a un MB (no necesito muchos bytes para hacer simple) E/S de archivos)

Luego miré Visual C++ 2010 porque ya lo tenía instalado, pero parece que necesito instalar 2008 solo para utilizar .NET Framework 3.5. Bueno, no me importaría usar 4.0, pero imagino que hay muchas personas que no tienen 4.0 en sus máquinas con Windows y sería un gran inconveniente leer un archivo.

¿Qué puedo usar que me permita pasar pequeños exe (por ejemplo: unos pocos KB's) que realizan cosas sencillas y únicas que se ejecutarán en la mayoría de las máquinas de Windows? (ya que solo es relevante para usuarios de Windows)

¿O debería simplemente usar C e ir con gcc for mingw?

+4

¿Qué tiene que ver la versión de VC++ con la versión de .NET Framework si está escribiendo código nativo? – ildjarn

+0

Puede escribir C o C++ estándar con Visual Studio, el objetivo de su proyecto no tiene que ser el .NET framework. –

+1

VC++ 2010 estará bien. Cuando escribe C++, no usa .NET (ninguna versión). –

Respuesta

7

Al menos algunos de los candidatos obvios:

VC++: A partir de VC++ 2010 está empezando a apoyar algunas características de C++ 11. VC++ 11 (actualmente en prueba beta) agrega algunos más. Tiene una generación de código bastante decente, un depurador que algunas personas creen que es lo mejor que se puede obtener, y un IDE que produce críticas más bien mixtas. Muchos de los que los han usado consideran que las generaciones anteriores del IDE (VC++ 5 y 6) son mejores, al menos de alguna manera, pero el compilador ha mejorado tanto desde entonces que los IDE antiguos realmente no son una opción para la mayoría de las personas (excepto para apoyar el código antiguo).

MinGW: el paquete actual de STL presenta gcc 4.7.0, que (al menos discutiblemente) tiene algo mejor compatibilidad con C++ 11 que VC++. Incluye bastantes herramientas Unix/Linux portadas, pero es básicamente un entorno de solo línea de comando. Si quieres algo como un IDE, tendrás que instalarlo/configurarlo por separado.

Cygwin: Esto también se basa en gcc, pero en lugar de portar el compilador a Windows, transfieren Linux a Windows y ejecutan el compilador en el Linux portado. Obviamente estoy exagerando (un poco) pero no mucho. Cygwin es principalmente para ejecutar el código de Linux/Unix en Windows con el menor número de modificaciones posible. Las herramientas que envían se adaptan también a eso: hace todo lo posible para ser un entorno tipo Unix que se ejecuta bajo el kernel de Windows. Definitivamente no sería mi primera opción para ningún nuevo desarrollo.

Qt Creator/SDK: este es otro paquete de gcc, pero con un IDE. Si desea escribir código usando Qt, podría ser su primera opción. De lo contrario, me gustaría probablemente evitarlo - si bien puede funcionar bien, de lo contrario, se escribe suponiendo que Qt es el valor predeterminado.

Eclipse/CDT: Puede encontrar este paquete con una copia de g ++ también. Al menos la última vez que lo intenté, necesitaba bastante trabajo en la configuración antes de que pudiera hacer que compilara correctamente. Si usa Eclipse para otros fines, hacer que funcione C++ probablemente valga la pena. De lo contrario, yo personalmente lo evitaría.

C++ Builder: En los días de Borland, este era el mayor desafío al dominio de Microsoft. Embarcadero parece estar tratando de volver a ponerlo en la corriente principal. El énfasis aquí parece ser mucho más en el IDE, GUI toolkit, etc., que el compilador propiamente dicho. El propio compilador parece estar algo detrás de gcc y/o VC++. La edición inicial cuesta $ 150 y limita las ventas de productos a $ 1000, punto en el que necesita gastar la mayor parte de sus $ 1000 en una actualización a la edición Professional.

Clang: El más reciente comenzó de los principales compiladores, pero realmente trabajando para ser uno de los mejores. Tiene algunos de los mejores diagnósticos de cualquier compilador disponible. Se dirige a LLVM, que le proporciona una gran variedad de herramientas para análisis de tiempo de ejecución y demás. Sin embargo, su principal patrocinador corporativo es Apple, por lo que aunque se ejecuta muy bien en OS/X (y ahora es el compilador predeterminado) en Windows, usted es un lote más por su cuenta - AFAIK, usted necesita algún otro compilador instalado y en funcionamiento (y realmente saber cómo usarlo) para instalarlo. En Windows, esto es un poco como comprar un muscle car en un depósito de chatarra. Si trabajas lo suficiente, es posible que termines con el auto más genial de la ciudad, pero en Windows actualmente es más un proyecto que una herramienta.

un poco más para evitar general:

  1. Cualquier versión de VC++ antes acerca de la implementación de 2008. Simplemente inferiores de C++.
  2. Cualquier versión de g ++ antes de 4.x. Nuevamente, implementación inferior de C++.
  3. djgpp: casi lo peor de lo peor. Esto realmente se dirige a MS-DOS con un extensor de DOS (personalizado). Una versión antigua de gcc redondea el horror.
  4. OpenWatcom: también se dirige principalmente a MS-DOS. Utiliza un extensor de DOS que es mejor que djgpp, pero eso es bastante condenatorio. El compilador ni siquiera está muy cerca de cumplir con C++ 98; Las actualizaciones de C++ 11 me parecen poco probables de llegar pronto (si es que alguna vez lo hicieron).
  5. Digital Mars: Walter Bright ahora funciona principalmente en su propio lenguaje D. Aunque un compilador de C++ todavía está disponible, el C++ que compila es bastante obsoleto.

Resumen: si desea un IDE, VC++ Express es la opción más clara. Si le importan más las últimas características de C++ 11 y no le importa trabajar desde la línea de comandos, MinGW es probablemente la mejor opción. Los otros definitivamente tienen nichos, pero consideraría que la mayoría de ellos son inferiores si su objetivo es principalmente el nuevo C++ portátil.

+0

Es bueno ver una lista de opciones para elegir. – MxyL

-1

Para un simple compilador C/C++ en las ventanas que es difícil de superar djgpp: http://www.delorie.com/djgpp/

+6

No es desagradable, pero diría más bien lo contrario: casi * todo * lo demás es mejor. –

+0

Su página dice DOS. – Dani

+2

Estoy seguro de que la pregunta significa * simple * como en los sentidos 5 o 9, no sentido 4. http://www.merriam-webster.com/dictionary/simple –

5

Actualmente estoy usando la distro MinGW por Stephan Lavavej en http://nuwen.net/mingw.html

lo uso para producir archivos .exe usando gcc.

Simplemente tiene que estar contento con la colección de herramientas que ha incluido.

+0

Acabo de empezar a usar esto también, no hace mucho tiempo. Funciona maravillosamente, y es la única distribución de GCC que he encontrado hasta ahora que funciona con Codeblocks ejecutándose desde una unidad flash. – chris

-1

En mi humilde opinión: la única manera de tener exe que es pocos kb en estos días es hacerlo con .NET Framework, digamos 2.0 para ser lo más compatible posible.

Supongo que cualquiera que sea la herramienta que utilice, enlazará estáticamente al menos algunas partes de la biblioteca estándar, lo que romperá su requisito de pequeño exe.

+2

Pero si usa .NET (cualquier versión), ya no estará escribiendo C++. Lo más cerca que puede obtener es C++/CLI, que 1) Microsoft recomienda * solo * para la interoperación, y 2) no es realmente C++ de todos modos. –

+0

Sí, pero para aplicaciones pequeñas, recomendaría C#. OP podría obtener exe de tamaño 10kb, y casi TODAS las computadoras con Windows tienen instalado .net 2.0. Sin embargo, no recomendaría C++/cli incluso a los peores enemigos :) –

+0

¿Qué puedo usar para compilar en .net 2.0? Microsoft tiene un SDK 2.0 pero es una descarga grande (350+ MB) y si hay algo más que pueda usar, sería útil. – MxyL

1

Entonces miré a Visual C++ 2010, ya que ya tenía instalado, pero parece que tengo que instalar 2008 sólo para utilizar .NET Framework 3,5

Uh, C++ y .NET tiene nada en absoluto para hacer uno con el otro.

Visual Studio es el compilador de C++ para Windows. La mayoría de los demás tienen un soporte deficiente de Windows en el mejor de los casos.

+1

+1 para comentar con 'soporte deficiente'. Porque, realmente es así. –

+1

Escuché que C++ Builder tiene buena compatibilidad con Windows. –

+0

constructor de C++, ¿sigue vivo? –

1

Sé que tu pregunta menciona "permíteme pasar el pequeño exe" pero si estás interesado (como yo) en ejecutar código C++ y no crear un exe, quizás quieras probar Compile and Execute C++ Online .

+0

Eso es definitivamente útil si quisiera simplemente escribir un fragmento rápido y ver si funciona. Parece un poco lento, sobre todo porque la compilación de pequeñas piezas de código generalmente no lleva tiempo, pero creo que esa es la compensación por no tener que compilar yo mismo. – MxyL

Cuestiones relacionadas