instalar ejecutar compilar compilador c++ linux eclipse gdb valgrind

c++ - ejecutar - g++ windows



¿Qué herramientas usas para desarrollar aplicaciones C++ en Linux? (24)

Además de muchos ya enumerados, utilizamos el conjunto de herramientas de autoconf para implementar nuestro programa a los usuarios.

Desarrollo aplicaciones C ++ en un entorno Linux. Las herramientas que uso todos los días incluyen Eclipse con el complemento CDT, gdb y valgrind.
¿Qué herramientas usan otras personas? ¿Hay algo para Linux que compita con la astucia de Microsoft Visual Studio?


Ahora mismo uso Qt Creator . Es multiplataforma y se integra muy bien con Qt, aunque (por supuesto) tiene la opción de crear una aplicación independiente.


Creo que KDevelop es lo más cercano a Microsoft Visual Studio. Obtienes casi todo (excepto desafortunadamente el depurador VS que es realmente un asesino). Ya es maduro y su desarrollo es bastante rápido y prometedor.

De hecho, implementa algunas cosas que ni siquiera verás en VS. Por ejemplo, abra el archivo de encabezado y el archivo cpp en el modo de mosaico vertical, y tenga el cursor sincronizado en ambos, es decir, cuando seleccione un prototipo de funciones, siempre tendrá su implementación a la derecha.

KDevelop es un proyecto de KDE, pero se ejecuta en Gnome. Anjuta es un proyecto equivalente en Gnome, pero me parece inutilizable para el trabajo real. Para el resto de la pila, gcc crea valgrind ddd (un gdb IDE) y python para escribir mi código.

Si está bien, pruebe un enfoque diferente al VS IDE. Puede considerar probar vim. Sin embargo, lleva mucho tiempo acostumbrarse.


Cuando desarrollé el código C ++ en Linux, utilicé emacs como editor y como front-end gdb. Más tarde, mi compañía compró SlickEdit para todos los programadores, lo cual es un buen IDE, tal vez no a la par con Visual Studio. Usamos gdb extensivamente, con el uso ocasional de valgrind y gprof. Recomiendo usar un lenguaje de scripting para complementar C ++ en las tareas diarias. Pasé de PERL a python al rubí actual. Todos hacen el trabajo y tienen fortalezas donde C ++ tiene debilidades. Y, por supuesto, tiene todos los comandos de shell a su disposición. Uso diariamente sort (), uniq (), awk, etc. Y una recomendación más es ack , un sucesor grep.


Cuando desarrollo aplicaciones C ++ para Linux, prefiero usar un montón de herramientas de línea de comando. Vim se extendió con una gran cantidad de complementos. Gdb con ddd, valgrind, libefence y SCons (automake es un dolor en ... ya sabes)


Eclipse CDT para edición, SVN para control de fuente, SCons para administración de compilación, CruiseControl para compilaciones automatizadas y un marco de prueba de unidad patentado.


El proyecto de incubación Eclipse Linux Tools integra herramientas de desarrollo C / C ++. Es un complemento GUI para integrar herramientas como Valgrind, GProf, GCov, SystemTap, etc. en el Eclipse C ++ CDT IDE.

Buscar Eclipse Helios IDE para C / C ++ desarrolladores de Linux (incluye incubar componentes), (120 MB)

Encontré esto después de intentar construir Linux Tools usando el archivo .psf disponible. Afortunadamente encontré este paquete escondido justo en la parte inferior de la página de descarga de paquetes de Helios.

Tenga en cuenta que este es un proyecto de incubación por lo que puede esperar que la asistencia solo mejore con el tiempo.

Consulte también: Para obtener información actualizada sobre la instalación y el uso de las herramientas de Eclipse Linux, haga clic aquí.


FlexeLint para análisis de código estático, además de lo mencionado anteriormente:
Eclipse con CDT, gcc, make, gdb, valgrind, bash shell.
Control de versión de origen: Clearcase o git, dependiendo del proyecto.


Mi primera opción es siempre emacs con una gran cantidad de complementos: ecb da algunos búferes para navegar en las carpetas, gdb, svn o integración git ... Esta es mi primera opción usando Python también.

Como segunda opción, Netbeans con el complemento C ++, es muy simple y bastante potente, pero creo que demasiado pesado.


Necesitas una cadena de herramientas estándar + un IDE.

No hay mucho que decir sobre la cadena de herramientas estándar. Simplemente instale, por ejemplo, en Ubuntu / Debian a través de

aptitude install build-essential

La parte interesante es sobre un IDE.

Mi impresión personal es que hoy en día, en el siglo XXI, vi / emacs / make / autotools / configure no es suficiente para desarrollar proyectos de software que superen cierto tamaño (... y sí, por favor culpanme por la herencia heredada ... .).

Cuál IDE elegir es simplemente una cuestión de gusto. Encontrarás muchos hilos en SOF. Aquí hay un enlace permanente que analiza qué C ++ IDE podría ser el "mejor": C ++ IDE para Linux .


Soy otro para KDevelop. Tiene un conjunto muy diverso de herramientas. No estoy muy familiarizado con VS y si tiene o no acceso integrado a la consola a través de su interfaz, pero KDevelop puede permitirle ejecutar una consola dentro del IDE, que siempre me resulta muy útil. Siempre podría darle una oportunidad a Netbeans ahora que tiene soporte completo de C / C ++.

Aparte de eso, hago un buen uso de gdb y su versión basada en GUI ddd para problemas con el código u otros errores. Para programas desechables, como otros que ya han publicado: uso g ++ en la terminal y hago algunos proyectos más grandes.


Uso Eclipse + CDT en Windows y Cygwin + g ++ para realizar una compilación cruzada para Linux.

(Los compiladores cruzados se crean utilizando crosstool, un buen conjunto de scripts para generar compiladores cruzados)


Uso el complemento NetBeans C ++, que es excelente y se integra con CVS y SVN. El lado de la administración del proyecto también es muy bueno. Estuve listo para correr en minutos. Es un IDE impresionante, pero al ser Java, puede ser un poco lento.


Yo uso lo que sea que esté en el sistema. Prefiero Eclipse CDT como editor y g ++ como compilador. Sin embargo, si eclipse no es una opción, uso vi, que también está bien.


Yo uso un montón de ventanas de terminal. Tengo vim ejecutándose en archivos fuente interesantes, make y g ++ output en otro para errores de compilación o una sesión de gdb para errores en tiempo de ejecución. Si necesito ayuda para encontrar definiciones, ejecuto cscope y uso el soporte cscope de vim para saltar.

Eclipse CDT es mi segunda opción. Es lindo pero enorme, desgarbado y lento en comparación con vim.

Usando terminal windows y vim es muy flexible porque no necesito llevar 400 MB de Java conmigo puedo usar sesiones SSH desde cualquier lugar.

Uso valgrind cuando necesito encontrar un problema de memoria.

Uso strace para ver lo que mi software está haciendo en un nivel de llamada del sistema. Esto me permite limpiar código realmente estúpido que llama al time(0) cuatro veces seguidas o hace demasiadas llamadas a poll() o read() no bloqueada read() o cosas como llamar a read() en un socket para leer 1 byte en un momento. (¡Eso es super ineficiente y flojo!)

Utilizo objdump -d para inspeccionar el código de máquina, especialmente para bucles internos sensibles al rendimiento. Así es como encuentro cosas como la lentitud del operador de índice de matriz en cadenas en comparación con el uso de iteradores.

Yo uso oprofile para tratar de encontrar puntos calientes en el código optimizado, me parece que a menudo funciona un poco mejor que gprof, y puede hacer cosas como buscar errores de caché de datos e instrucciones. Eso puede mostrarle dónde dejar caer algunos consejos útiles de __builtin_prefetch utilizando __builtin_prefetch de GCC. Traté de usarlo para encontrar ramas calientes mal pronosticadas también, pero no pude hacer que funcione para mí.

Actualización: he encontrado que la perforación funciona mucho mejor que Oprofile. Al menos en Linux. Aprende a utilizar perf y me encanta como lo hago.


emacs, cmake, gdb, git, valgrind. Puede que no sea tan elegante como Visual Studio, pero funciona bien, y es fácil agregar funcionalidad a través de bash scripting o emacs lisp.


g ++ por supuesto, pero también Code :: Blocks que es un IDE multiplataforma absolutamente fantástico (Win32, * nix, Mac).

Uso las compilaciones nocturnas (más como las últimas semanalmente) del SVN. Tiene casi todas las características que esperarías de un IDE moderno. Es realmente un proyecto Open Source verdaderamente fantástico.

Además, en Linux tienes la alegría de usar Valgrind, que es probablemente la mejor herramienta de seguimiento de memoria (también hace otras cosas) que el dinero puede comprar. Y es gratis :) Rastrea fugas de memoria y más con facilidad.

¡Y hay mucho más! Linux es una gran plataforma de desarrollo :)

(edit) Me acabo de dar cuenta de que mencionas a Valgrind en tu pregunta, tonto por leerlo demasiado rápido.


g ++ y hacer


Anjuta es una buena idea que hace que el desarrollador de Linux C ++ sea bastante agradable también.


Eclipse CDT es realmente bastante agradable. Todavía tengo que recurrir a Emacs de vez en cuando, pero me encanta la indexación, los árboles de llamadas, el soporte de refactorización (pensé que no se parecía en nada a la refactorización de Java), etc. El resaltado de sintaxis es bastante poderoso si lo personalizas (puede tener colores para variables locales, argumentos de funciones, métodos, etc.). La finalización del código también es muy útil. He usado principalmente Eclipse 3.3 pero 3.4 también es genial.

Además, la mayoría de las veces estoy usando esto para un proyecto algo grande (~ 1e6 sloc) - puede ser excesivo para proyectos de juguetes.


  • CMake
  • empuje
  • g ++
  • kdevelop (compilado de SVN diariamente!)
  • Mercurial cuando puedo, SVN cuando tengo que hacerlo, git cuando realmente no hay otra opción (contribuyendo al proyecto que lo usa)
  • valgrind

  • GCC
  • GHC
  • Empuje
  • Cmake
  • cscope
  • GDB
  • Valgrind
  • strace
  • git

¿Hay realmente algo más que puedas necesitar?


  • Intento
  • Empuje
  • Hacer
  • G ++
  • GDB
  • Valgrind
  • Gprof
  • svn

Nunca se ve una GUI, excepto una buena terminal con soporte de pestañas; mantenga el código, depurador, salida, etc. todo en ventanas separadas y tabique hacia atrás y adelante muy rápido.


  • g ++

  • emacs

  • línea de comando bash

  • gdb-mode en emacs (tipo MX gdb)

  • hacer