He estado intentando configurar un proyecto EDE para C++ (emacs24 + CEDET incorporado) y estoy empezando a desesperarme porque parece que no puedo encontrar el camino que quiero. makefiles para ser generado. Soy relativamente nuevo en Emacs. voy a tratar de describir lo que estoy haciendo:Cómo crear un proyecto EDE para C++
Tengo un proyecto conjunto de juego de este modo:
main.cpp
other/
Utils.cpp
Utils.h
CGrabBuffer.cpp
CGrabBuffer.h
main.cpp incluye tanto de .h dentro del directorio "otro /". Estos son los pasos que sigo para establecer un proyecto de EDE con esta sencilla configuración de directorios:
- main.cpp Abrir en emacs y hacer
M-x ede-new
; tipo:Make
; nombre:main-proj
. - Abra uno de los archivos en el "otro" directorio y haga
M-x ede-new
; tipo:Make
; nombre:aux-proj
. - Ahora es el momento de crear los objetivos (que creo que son tres en este caso):
- En el buffer main.cpp:
M-x ede-new-target
; nombre:main
; tipo:program
. Cuando se le solicite, agrego main.cpp a este objetivo. - Repito lo mismo para los otros dos objetivos (Utils que tiene Utils.cpp y Utils.h y CGrabBuffer que tiene CGrabBuffer.cpp y CGrabBuffer.h). Aquí encuentro el primer problema. ¿Qué tipo de estos dos objetivos tienen que ser? Solo quiero que generen archivos .o.
- En el buffer main.cpp:
- Una vez hecho esto, yo escriba
M-x ede-customize-current-target
a los tres objetivos y agrego algunos incluyen caminos, algunas bibliotecas, etc. - Después de esto, si llamo
M-x ede-compile-project
no se compila porque:- Intenta compilar main.cpp primero; No tengo idea de cómo especificar (usando EDE) que tanto Utils.o como CGrabBuffer.o son necesarios antes de intentar construir main.cpp.
- Si cambio manualmente el orden (editando el Makefile), no puede vincular main.cpp porque no puede encontrar Utils.o y CGrabBuffer.o.
Como se puede ver, estoy en medio de un gran desorden. Tal vez ni siquiera estoy entendiendo qué significa "objetivo" en EDE. También he leído sobre la existencia de ede-cpp-root-project que debe especificarse dentro del archivo .emacs. No lo he intentado porque lo que creo que es solo ayuda con la semántica. No genera Makefiles, ¿verdad? ¿Puedo tener (o necesito) un proyecto EDE creado con Project.el's y lo mismo usando ede-cpp-root-project para la semántica? ¿O es redundante?
Lo siento si he entendido mal muchas cosas, pero estoy muy confundido y ser nuevo en emacs empeora las cosas. ¡Gracias por su paciencia!
EDIT: con algunas modificaciones y las respuestas que recibí he podido descifrar un montón de cosas, así que muchas gracias. Lo que aún no entiendo es el uso del proyecto ede-cpp-root, que debe especificarse dentro del archivo .emacs. ¿Es solo para semántica C++? ¿Es redundante tener el proyecto AND de Project.el y también las líneas elisp en .emacs?
Estoy usando CEDET pero no puedo entender su soporte de proyecto para mi vida. Solo uso archivos Makefiles externos y agrego el tipo de proyecto "simple" en la parte superior de eso. –
Sí, y eso es lo único que hace que me quede con otros IDEs como Eclipse que te permiten administrar todo esto de manera más fácil ... – pparescasellas
Gran pregunta. He pasado los últimos días tratando de hacer funcionar este tipo de cosas, pero justo cuando pienso que estoy llegando a algo, todo se derrumba. Decir que EDE está pobremente documentado es una subestimación. – Mike