Entorno de desarrollo para C

10

Buscando ideas para establecer un entorno de desarrollo conveniente y productivo para el desarrollo C. Encontré que la edición en C con Vim fue muy útil, pero me gustaría obtener una muestra más amplia de sugerencias.

zvolkov
fuente
@txwikinger De acuerdo, simplemente no quería ser el primero de la policía de CW aquí :). O el que crea la etiqueta [subjetiva], que necesita una muerte dolorosa
Michael Mrozek
Ya hay wikis de la comunidad allí. Así que no hay excusa :) Y he creado la etiqueta subjetiva, por lo que todas sus preocupaciones se han ido. Por favor, consulte el wiki de la comunidad ahora :)
txwikinger
@txwikinger En realidad está desanimado ahora, así que lo eliminé de todas las publicaciones que lo tenían
Michael Mrozek

Respuestas:

12
  • Emacs / Vim / Eclipse / ... - Personalmente soy un usuario de Emacs. Si encuentra que las secuencias de control cansan a su dedo meñique, simplemente Viper-Mode. Emacs está muy bien integrado en Unix, por lo que es muy fácil controlar todo desde un solo lugar. Vim también hace un buen trabajo aquí, pero creo que Elisp es un lenguaje de extensión mucho más poderoso que Vim Script. Se podría hablar durante horas sobre todas las formas de configurar Emacs para el desarrollo de C. El modo Flymake ha sido mencionado, y es un súper comienzo para las cosas. No estoy familiarizado con Eclipse, no creo que deje suficiente espacio en mi pantalla para el código, ni me gusta lo hinchado que está (los usuarios de Vim dirán lo mismo sobre Emacs). También estoy injustamente predispuesto contra cualquier cosa escrita en Java, por razones puramente estéticas.

  • Ctags : etiqueta sus funciones de C (o de muchos otros lenguajes) para que Vim o Emacs o lo que sea pueda hacer un poco de enlace de hipertexto en sus archivos. Digamos que estás deambulando y ves una función y te rascas la cabeza diciendo "¿Qué hace eso otra vez? El nombre es un poco vago". Plink-plank-plunk, puedes saltar directamente a su definición.

  • Cmake / Gnu-Autotools : Make es genial, pero en algún momento necesitas abstraer un poco las cosas para que tu proyecto pueda construirse en todo tipo de sistemas para los que no tienes forma de probar. Si solo necesita personas para construir su código en un * nix, Autotools es excelente, pero, de todos modos, debería familiarizarse con Cmake. El equipo de Cmake crea el código en todas las configuraciones posibles y se asegura de que no tenga que pasar por el dolor de cabeza. Si desea que su proyecto sea fácil de adquirir, compre otros, una de estas herramientas es crucial.

  • Git / Mercurial / Subversion / ... - Podría pasar meses investigando el software de control de versiones, pero probablemente debería ir con Git. Es sólido, está distribuido, el @ $! #% Y Linux Kernel se rastrea con él. Si es lo suficientemente bueno para Linus, tiene que ser lo suficientemente bueno para ti. También escucho cosas buenas sobre Mercurial, aparentemente G ** gle las usa, por lo que probablemente no sea malo. Parece que a algunas personas les gusta Subversion y CVS y otras cosas. No me gustan porque son monolíticos, lo que para mí es muy inconveniente y limitante.

  • Stumpwm / wmii / XMonad / ... - En algún momento te darás cuenta de que cualquier cosa que puedas hacer para que tu trabajo fluya mejorará enormemente tu rendimiento. Una de las mejores maneras de evitar que su cerebro rompa su contexto es cambiar a los administradores de ventanas mosaico, CONTROLADOS POR TECLADO. Soy un fanático personal de StumpWM , el Emacs de los administradores de ventanas. Completamente implementado en un proceso Common Lisp personalizable sobre la marcha, todo lo que se encuentre haciendo repetitivamente puede ser eliminado en funciones y vinculado a comandos. Buena cosa. No sé mucho sobre ninguno de los otros, pero tal vez sea mejor dejar más detalles en otro hilo. UTILICE EL TECLADO TANTO COMO ES POSIBLE.

  • GDB : no estoy familiarizado con otros depuradores, pero este parece ser el estándar de facto.

  • Valgrind : no sé de otra cosa que haga lo que esto hace tan bien. Valgrind es crucial para todas esas molestas búsquedas de perfiles / pérdida de memoria que desea continuar. Simplemente no puede escribir código con malloc / calloc sin Valgrind.

Eli Frey
fuente
Agregaría Linux Performance Counter ( perf.wiki.kernel.org/index.php/Main_Page ) y / u Oprofile ( oprofile.sourceforge.net/news ) a esa lista.
Mark Probst
Acabo de crear un wiki de la comunidad, para que pueda agregarlos allí como lo considere apropiado. ¿El contador de rendimiento parece ser solo para Linux? Buscaré confirmar / negar esto, pero si es así, al menos esto debería notarse en su sugerencia.
Eli Frey
2

Insistí con Vim por un tiempo, vale la pena conocer los conceptos básicos de VIM, ya que siempre encontrarás una caja UNIX en algún lugar que solo tiene eso, pero probé Emacs y no he mirado atrás. Eclipse es una alternativa 'moderna', ¡tengo los tres en mi sistema!

Chris Huang-Leaver
fuente
2

Es una preferencia personal, así que no creo que pueda hacer mucho más que decirte lo que uso. Tengo Emacs configurado con el modo Flymake , que compila periódicamente el archivo en el que está trabajando y analiza la salida del compilador para descubrir qué errores ha cometido. Destaca los errores / advertencias en el búfer y muestra el mensaje de error del compilador asociado

Michael Mrozek
fuente
2

Uso Kate (texto) gcc / avr-gcc y make, con Git como VC. Principalmente hago cosas incrustadas en cy el lado de la computadora en python.

Ketil
fuente
2

Si está desarrollando C en Unix / Linux, debe usar Cscope si el proyecto tiene un tamaño significativo.

Cscope es una herramienta de desarrollo para el código fuente de la navegación - salto a la función foobar's definición, encontrar todos los lugares en los que la variable fooestá referenciada, encontrar todos los archivos incluidos bar.h, cambiar todas las apariciones de bardentro baz, etc.

Además, mencionaste a Vim en tu publicación ... aquí hay un tutorial sobre el uso de Vim y Cscope juntos.

Dan
fuente
1

Mi favorito personal es exVim . Tiene muchos complementos vim que lo hacen muy fácil de usar con una base de código grande. Hasta me tomo aproximadamente 1 día para aprender sus características, pero valdrá la pena.

Hemant
fuente
1

Edito C con Vim en la consola. Utilizo makefiles y tengo una serie de compiladores para probar mi código, incluidos gcc, clang (LLVM) e icc. Otras cosas que considero parte de mi entorno de desarrollo: el uso de grep, depuradores y valgrind. Un lenguaje de script para compilaciones más complicadas. Git para control de versiones.

En mi opinión, más importante que lo que usa para editar el código es cómo estructura su código. Probablemente sea una pregunta para Stack Overflow, pero, como usted preguntó, a menudo tengo un directorio separado para el código de objeto no para la distribución y otra carpeta para los binarios resultantes (y | ies). Tengo una carpeta de prueba que contiene más archivos C que usan todo el código genérico que estoy escribiendo y los valoro, junto con el archivo final del proyecto.

usuario119
fuente
1

Puedes probar Motor IDE . Se basa en maldiciones, por lo que debe sentirse como en casa (tm).) También es un poco triste porque no se ha mantenido durante 5 años, por lo que algunas cosas podrían romperse. Aunque aún así, creo que vale la pena intentarlo.

Eimantas
fuente
1

Yo uso gedit con terminal incrustado.

Silviu Bogan
fuente