Quiero expandir mis horizontes de programación a Linux. Un conjunto de herramientas básico bueno y confiable es importante, y ¿qué es más básico que un IDE?
Podría encontrar estos temas SO:
No estoy buscando un IDE ligero . Si un IDE vale la pena, lo pagaré, por lo que no es necesario que sea gratis.
Mi pregunta, entonces:
¿De qué sirve, IDE de programación C ++ está disponible para Linux?
Los mínimos son bastante estándar: resaltado de sintaxis, finalización de código (como intellisense o su contraparte de Eclipse) y depuración integrada (p. Ej., Puntos de corte básicos).
Lo he buscado yo mismo, pero hay tantos que es casi imposible separar a mano lo bueno de lo malo, especialmente para alguien como yo que tiene poca experiencia en codificación C ++ en Linux. Sé que Eclipse es compatible con C ++ , y realmente me gusta ese IDE para Java, pero ¿es bueno para C ++ y hay algo mejor?
La segunda publicación en realidad tiene algunas buenas sugerencias, pero lo que me falta es lo que hace que el IDE sugerido sea tan bueno para el usuario, ¿cuáles son sus (des) ventajas?
Quizás mi pregunta debería ser:
¿Qué IDE propones (dadas tus experiencias) y por qué?
Respuestas:
Inicialmente: confusión
Cuando escribí originalmente esta respuesta, recientemente hice el cambio de Visual Studio (con años de experiencia) a Linux y lo primero que hice fue tratar de encontrar un IDE razonable. En ese momento esto era imposible: no existía un buen IDE.
Epifanía: UNIX es un IDE. Todo ello. 1
Y luego me di cuenta de que el IDE en Linux es la línea de comando con sus herramientas:
Dependiendo de sus necesidades, tendrá que instalar y configurar varios complementos para que el editor funcione bien (esa es la parte molesta). Por ejemplo, la mayoría de los programadores en Vim se beneficiarán del complemento YouCompleteMe para la autocompletación inteligente.
Una vez hecho esto, el shell es su interfaz de comando para interactuar con las diversas herramientas: depuradores (gdb), Profilers (gprof, valgrind), etc. Configure su entorno de proyecto / compilación utilizando Make , CMake , SnakeMake o cualquiera de los diversos alternativas. Y administra su código con un sistema de control de versiones (la mayoría de las personas usan Git ). También usa tmux (anteriormente también pantalla) para multiplexar (= pensar en múltiples ventanas / pestañas / paneles) y persistir en su sesión de terminal.
El punto es que, gracias al shell y algunas convenciones de escritura de herramientas, todos se integran entre sí . Y de esa manera, el shell de Linux es un entorno de desarrollo verdaderamente integrado , completamente a la par con otros IDE modernos. (Esto no significa que los IDE individuales no tengan características de las que pueda faltar la línea de comando, pero lo inverso también es cierto).
A cada uno lo suyo
No puedo exagerar qué tan bien funciona el flujo de trabajo anterior una vez que haya adquirido el hábito. Pero algunas personas simplemente prefieren editores gráficos, y en los años transcurridos desde que esta respuesta se escribió originalmente, Linux ha ganado un conjunto de IDEs gráficos excelentes para varios lenguajes de programación diferentes (pero no, hasta donde yo sé, para C ++). Pruébalos incluso si, como yo, terminas sin usarlos. Aquí hay una pequeña y sesgada selección:
Tenga en cuenta que esta lista está lejos de ser completa.
1 Robé ese título del comentario de dsm.
2 Solía referirme a Vim aquí. Y aunque Vim es aún más que capaz, Neovim es un reinicio prometedor, y ha modernizado algunas verrugas viejas.
fuente
Mi favorito personal es el IDE CodeLite 2.x.
ver: http://www.codelite.org
La decisión de usar CodeLite se basó en una investigación sobre el siguiente IDE de C ++ para Linux:
Después de todo lo que he decidido utilizar CodeLite 2.x .
A continuación, he enumerado algunos pros y contras con respecto a los IDE de C ++ mencionados. Tenga en cuenta que esto solo refleja mi opinión personal.
EDITAR : qué pena que SOF no soporte tablas, así que tengo que escribir en párrafos ...
Eclipse Galileo con CDT Plugin
Pros:
Contras:
NetBeans 6.7 (tenga en cuenta que esta también es la base del IDE de SunStudio)
Pros:
Contras:
KDevelop4 (nota: no hice muchas pruebas)
Pros:
Contras:
CodeBlocks 8.02 (nota: no hice muchas pruebas en él)
Pros:
Contras:
CodeLite 2.x (nota: este es mi favorito personal)
Pros:
Contras:
fuente
Pronto descubrirá que los IDE no son suficientes y tendrá que aprender la cadena de herramientas GCC de todos modos (lo cual no es difícil, al menos aprender la funcionalidad básica). Pero no hay daño en reducir el dolor de transición con los IDEs, IMO.
fuente
Una respuesta rápida, solo para agregar un poco más de conocimiento a este tema:
definitivamente debe consultar NetBeans . Netbeans 6.7 tiene las siguientes características:
Creo que es una sustitución perfecta (y mucho mejor) de Visual Studio, y una muy buena herramienta para aprender C / C ++.
¡Buena suerte!
fuente
Al menos para proyectos específicos de Qt, Qt Creator (de Nokia / Trolltech / Digia) muestra una gran promesa.
fuente
Mi primera fuente fueron en realidad las herramientas '
man
páginas de . Sólo tipoen la línea de comando (
$
aquí es parte de la solicitud, no la entrada).Dependiendo de la plataforma, están bastante bien escritos y también se pueden encontrar en Internet. En el caso de
make
, en realidad leo el completo documentación que tomó algunas horas. En realidad, no creo que esto sea necesario o útil en la mayoría de los casos, pero tuve algunos requisitos especiales en mis primeras asignaciones en Linux que requerían un sofisticado archivo MAKE. Después de escribir el makefile, se lo di a un colega experimentado que hizo algunos pequeños ajustes y correcciones. Después de eso, supe bastantemake
.Utilicé GVIM porque tenía algo (pero no mucha) experiencia previa allí, no puedo decir nada sobre Emacs o alternativas. Creo que realmente ayuda leer el
.gvimrc
archivo de configuración de otras personas . Mucha gente lo pone en la web. Aquí está el mío .No intente dominar todos los binutils a la vez, hay demasiadas funciones. Pero obtenga una visión general para saber dónde buscar cuando necesite algo en el futuro. Usted debe , sin embargo, conocer todos los parámetros importantes para
g++
yld
(la herramienta de enlazador de GCC que se invoca automáticamente salvo impedimento explícitamente).Resaltado de sintaxis: sí, y mucho mejor que Visual Studio. Terminación del código: sí- ish . Primero, tengo que admitir que no utilicé la finalización del código C ++ incluso en Visual Studio porque (en comparación con VB y C #) no era lo suficientemente bueno. No lo uso a menudo ahora pero, sin embargo, GVIM tiene soporte de finalización de código nativo para C ++. En combinación con la biblioteca ctags y un taglist similar a un complemento, esto es casi un IDE.
En realidad, lo que me hizo comenzar fue un artículo de Armin Ronacher. ¡Antes de leer el texto, mira las capturas de pantalla al final!
Si. Pero esto es lo mismo para Visual Studio, ¿no es así (nunca he usado Whole Tomato)? Por supuesto, el resaltado de sintaxis le mostrará paréntesis no coincidentes, pero eso es todo.
Yo uso
gdb
cual es una herramienta de línea de comandos. También hay una interfaz gráfica llamadaDDD
.gdb
es una herramienta de depuración moderna y puede hacer todo lo que puede hacer en un IDE. Lo único que realmente me molesta es leer un seguimiento de la pila porque las líneas no están sangradas o formateadas, por lo que es muy difícil escanear la información cuando se usan muchas plantillas (lo que hago). Pero esos también desordenan el seguimiento de la pila en IDEs.Ni siquiera debería intentar comparar un editor moderno con todas las funciones como Emacs o GVIM con el Bloc de notas. El Bloc de notas es un
TextBox
control embellecido , y esto realmente marca la diferencia. Además, trabajar en la línea de comandos es una experiencia muy diferente en Linux y Windows. Las ventanascmd.exe
está severamente lisiado. PowerShell es mucho mejor./ EDITAR: ¡Debería mencionar explícitamente que GVIM ha editado con pestañas (como en la navegación con pestañas, no con pestañas vs espacios)! Me llevó años encontrarlos, aunque no están ocultos en absoluto. Simplemente escriba en
:tabe
lugar de simple:e
al abrir un archivo o crear uno nuevo, y GVIM creará una nueva pestaña. El cambio entre pestañas se puede hacer usando el cursor o varios accesos directos diferentes (dependiendo de la plataforma). La teclagt
(tipo g, luego ten modo comando) debería funcionar en todas partes, y salta a la siguiente pestaña, o pestaña no. n si se dio un número. Escriba:help gt
para obtener más ayuda.fuente
clang_complete
complemento ahora. Esta respuesta es de 2009 y algunas partes están desactualizadas. Pero ha habido mejoras en todos los lados, por lo que más o menos se iguala.No repito una respuesta, pero creo que puedo agregar un poco más.
Slickedit es un excelente IDE.
Es compatible con grandes bases de código sin ralentizar ni perder todo el tiempo indexando. (Este es un problema que tuve con cdt de eclipse). La velocidad de Slickedit es probablemente lo mejor de todo, en realidad.
La finalización del código funciona bien y hay una gran cantidad de opciones para cosas como formateo automático, embellecimiento y refactorización.
Tiene depuración integrada.
Tiene soporte para complementos y una comunidad bastante activa para crearlos.
En teoría, debería poder integrarse bien con las personas que hacen el material tradicional de los archivos MAKE, ya que le permite crear un proyecto directamente desde uno, pero eso no funcionó tan bien como me hubiera gustado cuando lo probé.
Además de Linux, existen versiones para Mac y Windows, en caso de que las necesite.
fuente
Como un tipo antiguo de UNIX, siempre uso Emacs. Pero eso tiene una curva de aprendizaje bastante empinada y larga, por lo que no estoy seguro de poder recomendarlo a los recién llegados.
Realmente no hay un IDE "bueno" para Linux. Eclipse no es muy bueno para C / C ++ (CDT está mejorando, pero aún no es muy útil). A los demás les faltan todas las características que va a estar buscando.
Realmente es importante aprender cómo funcionan todas las herramientas individuales (gcc, make, gdb, etc.). Después de hacerlo, puede encontrar que la forma de hacer las cosas de Visual Studio es muy limitante.
fuente
Checkout Netbeans, está escrito en Java, por lo que tendrá el mismo entorno independientemente de su sistema operativo, y es compatible con mucho más que solo C ++.
No voy a tratar de convencerte, porque creo que los IDE pueden ser una elección muy personal. Para mí, mejora mi productividad al ser rápido, admite los idiomas que codifico y tiene las características estándar que esperarías de un IDE.
fuente
Solo un seguimiento rápido de esta pregunta ...
Ha pasado un mes desde que comencé a usar Vim como mi principal herramienta 'GUI' para programar C ++ en Linux. Al principio, la curva de aprendizaje era realmente un poco empinada, pero después de un tiempo y con las opciones correctas activadas y los scripts ejecutándose ¡realmente me acostumbré!
Me encanta la forma en que puedes darle forma a Vim para satisfacer tus necesidades; solo agrega / cambia las asignaciones de teclas y Vim se convierte en un 'IDE' altamente productivo.
La cadena de herramientas para construir y compilar un programa C ++ en Linux también es realmente intuitiva. make y g ++ son los herramientas que usarás.
El depurador ddd embargo, no es realmente tan bueno, pero tal vez eso es porque no he tenido el tiempo para dominar correctamente.
Entonces, para cualquiera que esté o esté buscando un buen IDE de C ++ en Linux, al igual que yo, su mejor opción radica en las herramientas estándar disponibles en Linux (Vim, g ++, ddd) y al menos debería intentar usar ellos, antes de buscar algo más ...
Por último, pero no menos importante, realmente quiero agradecer a Konrad por su respuesta aquí. Realmente me ayudó a encontrar mi camino en el entorno de desarrollo de Linux, ¡gracias!
También estoy no cerrar esta pregunta, por lo que la gente todavía puede reaccionar o tal vez incluso añadir nuevas sugerencias o adiciones a las respuestas ya muy agradable ...
fuente
Le recomiendo que lea The Art Of UNIX Progranmming . Enmarcará su mente para usar el entorno como su IDE.
fuente
La respuesta más corta es: elegir el "editor" que desee, luego usar la consola GDB o un simple front-end GDB para depurar su aplicación. Los depuradores vienen con IDE sofisticados como Netbeans apesta para C / C ++. Yo uso Netbeans como mi editor, y la consola Insight y GDB como mi depurador.
Con perspicacia, tiene una buena interfaz gráfica de usuario y el poder bruto de GDB.
Tan pronto como se acostumbre a los comandos GDB, comenzará a amarlo ya que puede hacer cosas que nunca podrá hacer con una GUI. Incluso puede usar Python como lenguaje de script si está utilizando GDB 7 o una versión más reciente.
La mayoría de las personas aquí prestaron más atención a los "Editores" de los IDE. Sin embargo, si está desarrollando un proyecto grande en C / C ++, podría pasar fácilmente más del 70% de su tiempo en los "depuradores". Los depuradores de los IDE elegantes están al menos 10 años detrás de Visual Studio. Por ejemplo, Netbenas tiene interfaces muy similares con Visual Studio. Pero su depurador tiene una serie de desventajas en comparación con Visual Studio.
La lista puede ser mucho más larga.
Estaba tan frustrado por las desventajas de los Netbeans u otros IDE similares, por lo que comencé a aprender GDB. Encontré que GDB en sí mismo es muy poderoso. GDB no tiene todas las "desventajas" mencionadas anteriormente. En realidad, GDB es muy poderoso, es incluso mejor que Visual Studio en muchos sentidos. Aquí solo te muestro un ejemplo muy simple.
Por ejemplo, tiene una matriz como:
Cuando su aplicación se detiene y desea examinar los datos en IdAndValues. Por ejemplo, si desea encontrar los ordinales y los valores en la matriz para un "ID" en particular, puede crear un script como el siguiente:
Puede usar todas las variables en su aplicación en el contexto actual, sus propias variables (en nuestro ejemplo, es $ i), los argumentos pasados (en nuestro ejemplo, es $ arg0) y todos los comandos GDB (integrados o definidos por el usuario )
Use PrintVal 1 del indicador GDB para imprimir valores para ID "1"
Por cierto, NetBeans viene con una consola GDB, pero al usar la consola, puedes bloquear Netbeans. Y creo que es por eso que la consola está oculta por defecto en NetBeans
fuente
Estoy usando " Geany " encontrado bueno hasta ahora, es IDE rápido y ligero.
Entre las características de Geany están :
fuente
Si te gusta Eclipse para Java, sugiero Eclipse CDT. A pesar de que el soporte C / C ++ no es tan poderoso como lo es para Java, todavía ofrece la mayoría de las características. Tiene una buena característica llamada Proyecto Gestionado que hace que trabajar con proyectos C / C ++ sea más fácil si no tienes experiencia con Makefiles. Pero aún puedes usar Makefiles. Hago codificación C y Java y estoy muy contento con CDT. Estoy desarrollando el firmware para un dispositivo integrado en C y una aplicación en Java que habla con este dispositivo, y es realmente agradable usar el mismo entorno para ambos. Supongo que probablemente me haga más productivo.
fuente
Me encanta cómo la gente pierde por completo la solicitud en la pregunta original para un IDE. Linux NO es un IDE. Eso no es lo que esas palabras significan. Aprendí c y c ++ usando vi y gcc y make, y no digo que no sean herramientas adecuadas, pero NO son un IDE. Incluso si utiliza herramientas más elaboradas como vim o emacs o cualquier editor elegante que desee, escribir comandos en una línea de comandos no es un IDE.
Además, todos saben que make existe como parte del estudio visual, ¿verdad? La idea de que un IDE es "limitante" es una tontería si puede usar el IDE para acelerar algunas cosas, pero aún puede recurrir a las cosas de la línea de comandos cuando sea necesario.
Dicho todo esto, sugeriría, como lo han hecho varios de los anteriores, probar bloques de código. Tiene un resaltado de código decente, una forma bastante fácil de crear un proyecto, codificarlo, ejecutarlo, etc., que es el núcleo de un IDE real y parece bastante estable. La depuración apesta ... Nunca he visto un depurador interactivo decente en ninguna variante de Linux / Unix. Dios no lo es. Si estás acostumbrado a la depuración visual del estilo de estudio, no tienes suerte.
De todos modos, iré a empacar mis cosas, sé que la multitud de Linux de una sola vista gritará esto y me sacará de la ciudad en poco tiempo.
fuente
make + vim + gdb = un gran IDE
fuente
Me gusta bastante el IDE de Ultimate ++ . Tiene algunas características que fueron diseñadas para usar con su propia biblioteca (que, por cierto, es un buen juego de herramientas si no desea comprar GTK + o QT), pero funciona perfectamente bien con proyectos generales de C ++. Proporciona terminación de código decente, buena coloración de sintaxis, depuración integrada y todas las demás funciones que admiten los IDE más modernos.
fuente
Realmente sugiero bloques de código . No es tan pesado como Eclipse y tiene soporte para proyectos de Visual Studio.
fuente
¿Quizás el Proyecto de herramientas de Linux para Eclipse podría satisfacer sus necesidades?
fuente
En Linux hay muchos IDE:
En mi experiencia, los más valiosos son Eclipse y Qt Creator . Ambos proporcionan todas las características "estándar" (es decir, autocompletado, resaltado de sintaxis, depurador, integración git). Vale la pena señalar que Eclipse también proporciona funcionalidades de refactorización, mientras que Qt Creator proporciona integración con Valgrind y soporte para la implementación en objetivos remotos.
Además, el CLion IDE comercial parece bastante bueno (pero no lo he usado ampliamente).
fuente
Escuché que Anjuta es bastante hábil para los usuarios de Gnome. Jugué un poco con KDevelop y es agradable, pero carece de características. Code :: Blocks también es muy prometedor, y me gusta más.
fuente
Sun Studio versión 12 es una descarga gratuita (soporte GRATUITO y de pago disponible) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0 .
Estoy seguro de que tiene la finalización del código y el soporte de depuración, incluido el soporte de complementos en este IDE.
Sun Studio está disponible para Linux y Solaris. foros: http://developers.sun.com/sunstudio/community/forums/index.jsp . Foros de Sun Studio Linux: http://forum.sun.com/forum.jspa?forumID=855
Estaré ansioso por escuchar sus comentarios sobre esta herramienta.
BR,
~ A
fuente
Anteriormente utilicé Ultimate ++ IDE y es bastante bueno.
fuente
Estoy de acuerdo en su mayoría, pero el problema también es de percepción: olvidamos lo difícil que fue ser productivo en cualquier IDE elegido (u otro entorno). Encuentro los IDE (Visual Studio, NetBeans, Eclipse) increíblemente engorrosos de muchas maneras.
En segundo lugar eso; uso Emacs como mi editor principal tanto en Linux como en MSW (XP2, W2K). No estoy de acuerdo con que tenga una curva de aprendizaje pronunciada , pero diría que debido a la gran cantidad de características tiene una curva de aprendizaje larga . Puede ser productivo en poco tiempo, pero si lo desea, puede aprender nuevas características en los próximos años.
Sin embargo, no espere que todas las características de Emacs estén disponibles en los menús desplegables, hay demasiada funcionalidad para encontrarlo allí.
Como mencioné, he usado GNU Emacs en MSW durante años. Y siempre funcionó bien con Visual Studio hasta que me "actualicé" a 2008; ahora a veces demora muchos segundos antes de actualizar archivos del disco. La razón principal para editar en la ventana VS es la función de finalización de código "Intellisense".
fuente
geany recomiendo
fuente
Aunque uso Vim, algunos de mis compañeros de trabajo usan SlickEdit, que se ve bastante bien. No estoy seguro acerca de la depuración integrada porque de todos modos no podríamos hacer eso en nuestro proyecto en particular.
SlickEdit tiene un buen soporte para navegar bases de código grandes, con referencias cruzadas y saltos de etiquetas. Por supuesto, tiene las cosas básicas como el resaltado de sintaxis y la finalización del código también.
fuente
Utilizo Eclipse CDT y Qt Creator (para aplicaciones Qt).
Esas son mis preferencias. Es una pregunta muy sugerente y hay tantas respuestas como desarrolladores. :)
fuente
SlickEdit. He usado y amado SlickEdit desde 2005, tanto en Windows como en Linux. También tengo experiencia trabajando en Visual Studio (5, 6, 2003, 2005) y solo con Emacs y la línea de comandos. Uso SlickEdit con archivos MAKE externos, algunos de mis compañeros de equipo usan SlickEdit, otros usan Emacs / vi. No utilizo el depurador integrado, el control de versiones integrado, el sistema de compilación integrado: generalmente encuentro demasiada integración como un verdadero dolor. SlickEdit es robusto (muy pocos errores), rápido e intuitivo. Es como un automóvil alemán, un automóvil de conductor.
Las versiones más recientes de SlickEdit parecen ofrecer muchas características que no me interesan, estoy un poco preocupado de que el producto se hinche y se diluya en el futuro. Por ahora (uso V13.0) es genial.
fuente
Para mí, Ultimate ++ parece ser la mejor solución para escribir programas cross-os
fuente
Si estuvo usando vim durante mucho tiempo, debería hacerlo como su IDE. Hay muchos complementos disponibles. Encontré varios de ellos como bastante útiles, y lo compilé aquí, échale un vistazo.
Y mucho más en la serie de consejos y trucos vi / vim de allí.
fuente