2009-03-17 50 views
8

He estado aprendiendo C++ y Allegro usando Code :: Blocks en Windows XP, y hace poco sentí deseos de aprender Vim. Sin embargo, no tengo idea de cómo compilar un programa "manualmente" (es decir, sin usar un IDE).Intentando compilar y depurar C++ desde Vim

Para compilar desde dentro de Vim, he llegado a establecer makeprg en gcc, pero entiendo que también necesito un archivo MAKE. ¿Qué es eso y cómo escribo uno? ¿Es con el archivo MAKE que puedo usar bibliotecas como Allegro?

Además, tengo bastante afición al depurador de CB (estoy usando gdb). ¿Es posible hacer algo similar con Vim?

Gracias.

+2

Si realmente quiere aprender a compilar programas (¡o en vivo!) Sin un IDE, lo que creo que es genial, recomiendo comenzar con algo que NO ES Windows, incluso si planea mudarse allí . –

Respuesta

4

No necesita necesariamente necesita un archivo Makefile, pero es la forma preferida (y posiblemente más sana) de compilar código en sistemas tipo UNIX.

No sé si GNU Make tiene un puerto de Windows, pero probablemente pueda ejecutarlo en Cygwin.

Para obtener más información sobre GNU Make y Makefile:

Además, ver a esta pregunta: compile directly from vim

Edición obligatoria: No uso Windows o Cygwin. Es posible que desee tomar epochwolf's advice en ese departamento.

+1

NOOOooo ... evitar cygwin a toda costa. Es lento, feo y realmente no tiene ninguna ventaja sobre las aplicaciones de Windows nativas. Si quieres herramientas gcc y relacionadas en Windows, necesitas 'mingw' y 'msys'. También hay una versión nativa de make incluida con ellos. – davr

+0

Oye, solo digo. No sabría si Cygwin es bueno, no uso Windows. =) –

1

Edit1: Unos marcadores que pueden resultar útiles:

GNU make tutorial (éste utiliza gcc y crea, por lo que debe ser hasta su callejón)

Another one

Win port de algunas de los utilitarios de GNU Can fue mencionado; Yo personalmente los uso y no he tenido ningún problema con ellos en la plataforma de Windows.


Sí, puede compilar sin el archivo MAKE. Si su programa es simple (por ejemplo, un solo archivo) puede compilar llamando al compilador e incluyendo el nombre del programa en la misma línea (no recuerdo cómo funciona con gcc). Por supuesto, para hacer las cosas más fáciles, esto se puede asignar a una clave dentro de vim, por lo que no tiene que saltar al indicador de comando y volver.

Si está trabajando en un proyecto más grande, que consta de varios archivos y tal, que un archivo MAKE es útil. "Buscará" a través de los archivos, determinará las dependencias, los incluirá en la construcción, tal vez ponga los archivos fuente en un directorio y el archivo ejecutable resultante en el otro y tal. Por lo tanto, es más un sistema de enlace y construcción que simplemente compilar. Aunque la referencia GNU mencionada en la respuesta de Can Berk Guder es muy popular, hay muchas otras tomas para "crear archivos makefiles" ("makefile" se ha convertido en un tipo de sinónimo para ese tipo de operación) - aquí, puedes vea algunas otras opciones en este link.Debido a su parte en la historia, vim tiene un buen soporte para: make, pero otros también se pueden usar fácilmente (hay muchos textos sobre este tema en VimWikia.

Bueno, eso es todo. Solo mis 0,2 euros :)

4

Mire MinGW. Evitaría Cygwin si solo necesitas gcc y make. Querrá tanto MinGW como MSYS. MSYS tiene un puerto de Windows de make.

Si está interesado en más utlities de Unix para la línea de comandos de Windows, recomiendo CoreUtils.

Para aprender hacer ver a la manual

3

no estoy en experto en archivos make y depuración, pero sé que Vim le permite hacer muchas cosas. Por ejemplo, si desea compilar un archivo con gcc, no es muy diferente de la forma habitual. En modo normal, escriba:

:!gcc file.c -o file 

De hecho, puede usar (casi) todos los comandos del sistema simplemente agregando "!" frente a tu comando. BGF también trabaja con Vim

:!gdb 

espero que le ayudará.

1

Mientras tenga instalado GNU-make (con cygwin o mingw en Windows), no necesita escribir un archivo MAKE para proyectos de un solo archivo. Simplemente ejecute :make desde vim, y eso es suficiente.

Si su proyecto está hecho de varios archivos, entonces tendrá que escribir un archivo MAKE (o cualquier equivalente para scons, aap, (b) jam, hormiga, ...), sintonice su &makeprg en consecuencia, y finalmente llame al :make desde vim. Consulte la categoría correspondiente en vimtips. Por supuesto, puede ejecutar el compilador como lo haría con cualquier otra herramienta externa, pero perdería la posibilidad de saltar a la (s) línea (s) del error (s).

NB: si está utilizando la versión win32 de vim y gcc-cygwin, necesitará traducir los mensajes de error obtenidos. Solía ​​mantener una secuencia de comandos Perl para este propósito, ahora es parte de una bigger suite (todavía en fase beta)

En cuanto a su pregunta sobre la depuración, no se puede hacer desde vim en las ventanas por el momento. El único depurador que se puede integrar hasta ahora es gdb, pero solo en Linux; ver el proyecto pyclewn (.sf.net).

2

Para integrar vim con devenv, puede usar devenv de Visual Studio para cumplir el proyecto en vim. El comando de la siguiente manera:

Devenv SolutionName /build SolnConfigName [/project ProjName [/projectconfig ProjConfigName]] 

Typicatlly, la devenv debería ubicado en C: \ Archivos de programa \ Microsoft Visual Studio 8 \ Common7 \ IDE. Establézcalo en la ruta del entorno para que sea invocable desde vim. También necesitamos hacer que vim reconozca los mensajes de error lanzados por la herramienta de construcción de línea de comandos devenv. Sólo hay que poner las siguientes líneas en su vimrc:

" Quickfix mode: command line devenv error format 
au FileType cpp set makeprg=devenv.com\ /Build\ Debug\ *[SolutionName]* 
au FileType cpp set errorformat=\ %#%f(%l)\ :\ %#%t%[A-z]%#\ %m 

continuación, puede utilizar: make para compilar y construir el programa de vim.

0

No estoy seguro acerca de la depuración, pero conozco una manera fácil de compilar y ejecutar el programa actual, ya que escribí un pequeño complemento vim para hacerlo.

http://pastebin.com/qc5Zp2P7

Se supone que está utilizando el compilador g ++. Si no, simplemente cambie el nombre al compilador que está usando. Guarde este archivo donde lo hayainstaladovim/ftplugin/cpp.vim

Para compilar y ejecutar el programa actualmente abierto, simplemente escriba shift-e en el modo sin edición.

Cuestiones relacionadas