2009-08-05 11 views
13

Recientemente comencé a aprender C++ y estoy completamente confundido con las opciones de IDE y compiladores que existen. Soy competente en idiomas interpretados y me gusta la simplicidad de usar cualquier IDE o editor de texto y luego ejecutar el intérprete desde la línea de comando. Todo funciona como espero, independientemente del IDE utilizado, porque uso el mismo intérprete cada vez.Aprendiendo C++ sin un IDE

Ahora que comencé a aprender C++ me siento abrumado por la elección de diferentes compiladores y, lo que es más importante, sus diferencias. Parece que las cosas serán más simples para mí (no necesariamente más fáciles) si, mientras estoy aprendiendo, utilizo un editor de texto y un compilador que ejecuto desde la línea de comandos. Tengo una comprensión básica de cómo funciona la compilación y la vinculación y entiendo la función de los archivos de encabezado.

En primer lugar, ¿hay algún libro o sitio web que enseñe C++ desde este enfoque? (IDE-less) Muchos libros intentan señalar las diferencias entre los IDE y los compiladores seleccionando dos y comparándolos, lo que me confunde.

En segundo lugar, ¿cómo debo configurar mi flujo de trabajo? (Ignore la opción de editor de texto, estoy hablando de compiladores, enlazadores, etc.) Estoy luchando por comprender las diferencias que tienen los diferentes compiladores, así que tengan esto en cuenta al responder. Parece que los compiladores más populares son g ++ y CL. pregunta similar pero estoy más interesado en por qué algunos programas trabajarán con algunos compiladores y no otros: C++ Compiler for Windows without IDE?

Más información: estoy desarrollando en Windows y por lo que entiendo, parece que no es 'puro' C++ y luego C++ que de alguna manera está relacionado con Windows, ¿es esto Visual C++? Me gustaría escribir programas que hagan uso de las características de Windows, pero quiero saber cuándo estoy usando las características de Windows y cuándo estoy escribiendo código que funcionaría en cualquier plataforma.

Actualización: Parece que no debería preocuparme por los compiladores cuando estoy empezando. La razón por la que quiero entender las diferencias es porque no quiero escribir código para un compilador específico y meterme en malos hábitos. ¿Esto no es un problema?

+2

Comience con un libro que enseña C++ estándar, entonces no tendrá que preocuparse por tener malos hábitos con códigos no estándar sin darse cuenta. Consulte http://stackoverflow.com/questions/388242/ – KTC

Respuesta

11

En primer lugar, ¿hay algún libro o sitio web que enseñe C++ desde este enfoque? (IDE-less)

Sí, definitivamente. Stroustrup's book ya ha sido mencionado. Para aprender C++ también recomendaría otros dos libros: si te gustan las explicaciones completas y no te intimides con 1000 páginas, mira Lippman et al. Si prefieres una breve introducción y no temas una curva de aprendizaje pronunciada, mira Koenig/Moo. Ambos son excelentes libros. (Por cierto, un buen lugar para buscar buenos libros siempre ha sido la sección de reseñas de libros en el ACCU.)

En cuanto a la cadena de herramientas que desea utilizar: Si prefiere tener un editor independiente e invocar el compilador desde el línea de comando, puede hacer esto con GCC o VC. Este enfoque tiene la ventaja de que es más improbable que te atraiga a usar algo propio (como C++/CLI). Si desea probar un IDE, VC Express está bien, una vez que haya pasado de configurar un nuevo proyecto de C++. Por supuesto, la cantidad de opciones que puede ajustar para un nuevo proyecto puede ser muy abrumadora. Pero, por otro lado, obtienes cosas como un depurador integrado. Tenga en cuenta que hay otras soluciones integradas, también. El más maduro y prominente es probablemente el eclipse.

Editar: Si no te importa gastar un poco de dinero, mira Comeau. No es gratis, pero tampoco es caro y generalmente se lo considera el compilador de C++ con el estándar más estándar y tiene excelentes mensajes de error. (Puede probarlo en the website). Sin embargo, tenga en cuenta que emite código C.Eso significa que debe tener otro compilador para crear un programa ejecutable. Pero tanto GCC como VC Express funcionarán, por lo que no hay otro costo. (Tenga en cuenta que al usar VC obtendrá la implementación estándar de Dinkumware, que también se considera una muy buena).

4

Use MinGW - es una cadena de herramientas de desarrollo C++ de línea de comandos que le permite crear aplicaciones de Windows. El enlace SO que citó parece tener todos los detalles relevantes, por lo que no entiendo por qué publicó esta pregunta.

+0

Usted está haciendo la pregunta incorrecta, y una que realmente no puede ser respondida. Ambas son implementaciones del mismo estándar de lenguaje. En algunas áreas, uno será un poco mejor implementando esos estándares que el otro. Pero no deberías preocuparte por esas cosas en esta etapa. –

+0

Ok gracias. Sin embargo, me resulta difícil no preocuparme por estas cosas porque me parece que algún código se compilará con un compilador y no con otro que me confunde cuando estoy tratando de basarme en lo básico. –

+0

Cuando se trata de lo básico, ambos compiladores admiten las mismas funciones de idioma. –

3

En primer lugar, ¿hay algún libro o sitio web que enseñe C++ desde este enfoque? (IDE-less)

Comience leyendo The C++ Programming Language libro. Escrito por Bjarne Stroustrup, el creador de C++, este es el libro más confiable y ampliamente leído del mundo sobre C++.

Eche un vistazo también en Programming — Principles and Practice Using C++. Es una introducción a la programación para personas que nunca han programado antes. También será útil para las personas que han programado un poco y desean mejorar su estilo y técnica, o simplemente aprender C++ moderno.

+0

Pero desafortunadamente no es el mejor para aprender C++. –

+0

Puede no ser para principiantes en programación, pero lo mejor para principiantes en C++. –

+0

@Neil: ¿Puede dar más detalles sobre sus opiniones sobre el libro de introducción a la programación de Stroustrup? No lo he visto todavía, pero después de haber enseñado C++ durante años, estoy muy interesado en él. – sbi

1

estoy desarrollando en Windows y desde lo que entiendo, parece que hay es 'puro' C++ y C++ que se alguna manera relacionado con Windows, es esta Visual C++?Me gustaría escribir los programas que hacen uso de las características de Windows pero quiero saber cuándo estoy usando las características de Windows y cuándo estoy escribiendo el código que funcionaría en cualquier plataforma .

MS Visual C++ 2008 Express es un IDE gratuito dirigido a gente como usted, está disponible por descarga de Microsoft, le recomiendo que lo pruebe.

+1

Ok, ya tengo una copia instalada pero temo que comenzaré a escribir programas que hacen uso de funciones visuales de C++ sin darme cuenta de que lo estoy haciendo, y por lo tanto el programa no compilará nada más que CL. –

+1

@Pheter: Eso siempre es un problema, no solo con VC, aunque estoy de acuerdo en que podría ser peor con VC que con, digamos, GCC. La única forma de evitar esto es usar más de un compilador. No hay nada malo en pedir varias opiniones. – sbi

+0

En ese caso, probablemente usaré MinGW y tendré una copia de CL lista para compilar por segunda vez para asegurarme de que las cosas se compilan correctamente en ambas. ¡Gracias! –

0

En Windows, recomiendo Visual Studio Express, es gratis y es ampliamente aceptado por los programadores de C++ en la plataforma Windows.

Dado que está empezando a aprender el idioma, no se moleste con las diferencias, las ventajas/desventajas de los compiladores y los IDE: déjelo cuando sea más competente con el idioma y participe en la redacción de un programa real.

0

De hecho, sugiero el enfoque IDE, Microsoft Visual C++ Express Edition debería hacer el truco. Excluyendo algunas sintaxis sofisticadas, la mayoría de los compiladores de C++ se comportan de la misma manera. C++ es un lenguaje que tiene una biblioteca estándar muy pequeña (que cubre principalmente funciones de E/S, matemática básica, etc.). Esto es probablemente lo que usted llama puro C++. Para algo más avanzado, tendrá que usar las bibliotecas del sistema. Por ejemplo, si desea escribir la aplicación Windows GU, tendrá que incluir el archivo de encabezado windows.h que es específico de la plataforma y existe solo en los compiladores de Windows.

+0

En realidad, es un lenguaje con una biblioteca estándar bastante grande, que abarca mucho más que I/O. ¿Has oído hablar de STL? –

+0

Está en la parte etc :) En mi opinión, sigue siendo una biblioteca estándar pequeña. La mayoría de los lenguajes modernos vienen con bibliotecas de contenedores, y cuando se compara la biblioteca estándar de C++ con la de .NET Framework, Java o Python, realmente resulta básico. La base de datos, ventanas, redes y compatibilidad con subprocesos no existen en la biblioteca estándar de C++. – Ivan

1

Visual C++ es el nombre del paquete de programa IDE. Instalarlo instala muchas cosas, incluido el compilador cl.exe, que puede compilar, según la configuración, el programa escrito en el lenguaje de programación C, C++ o C++/CLI (para el framework .Net).

Puede usar el compilador en el símbolo del sistema sin el IDE (por ejemplo) seleccionando Inicio> Programas> Microsoft Visual Studio X> Herramientas de Visual Studio> Símbolo del sistema de Visual Studio X. Esto ejecuta una secuencia de comandos que establece varias configuraciones de entorno necesarias para compilar programas antes de darle el símbolo del sistema.

0

Si no va a usar un IDE, definitivamente desea utilizar Makefiles para organizar su flujo de trabajo. .y puedes hacer fácilmente desde emacs o vim.

De todos modos, puedo sugerir que utilice un IDE muy simple, casi no intrusiva, que podría ser ideal para fines de aprendizaje: http://www.bloodshed.net/devcpp.html

Viene con el compilador MinGW incluido, por lo que se acaba de instalar y listo.

+1

Dev-C++ es abandware, sigamos adelante ... (es decir, al menos use wxDev-C++ si le gusta esa interfaz IDE en particular). – KTC

+0

Es no se trata de tener la mejor interfaz o las últimas características, simplemente señalé una herramienta donde escribes, presiono un botón y el programa se compila, presiono otro botón y se ejecuta. Y para eso, devcpp es suficiente, nada más, nada menos ... recuerde que el OP no quería meterse con los IDEs – fortran

+0

DevC++ ya no se está desarrollando y tiene errores. Si quiere un IDE que no sea MS, debe usar Code :: Blocks. –

0

Yo diría que para empezar con Visual Studio. Este es un gran IDE para programar C++ en Windows, también podría usarlo cuando puede acelerar mucho ciertas cosas.

Las diferencias entre los compiladores no son tan grandes: si puede escribir código sólido en VS, entonces no debería ser un problema averiguar cómo hacer que su código funcione en GCC/G ++.

En cuanto a libros; Excepcional C++ por Herb Sutter y The C++ Programming Language por Bjarne Stroustrup son una gran lectura.

Visual Studio es el camino a seguir cuando se desarrolla para Windows.