Ho cercato di impostare un progetto EDE per C++ (emacs24 + CEDET integrato) e sto iniziando a disperarmi perché non riesco a trovare il modo in cui voglio makefile da generare. Sono relativamente nuovo a Emacs. Cercherò di descrivere quello che sto facendo:Come creare un progetto EDE per C++
Ho un progetto giocattolo stabilito in questo modo:
main.cpp
other/
Utils.cpp
Utils.h
CGrabBuffer.cpp
CGrabBuffer.h
main.cpp comprende sia .h di dentro "l'altro /" directory. Questi sono i passi seguo per impostare un progetto EDE con questa semplice configurazione directory:
- aperto main.cpp in emacs e fare
M-x ede-new
; digitare:Make
; nome:main-proj
. - Aprire uno dei file nella "altra" directory e fare
M-x ede-new
; digitare:Make
; nome:aux-proj
. - Ora è il momento di creare gli obiettivi (che ritengo tre in questo caso):
- sul buffer main.cpp:
M-x ede-new-target
; nome:main
; tipo:program
. Quando richiesto, aggiungo il main.cpp a questo target. - Ripeto lo stesso per gli altri due target (Utils che ha Utils.cpp e Utils.h e CGrabBuffer che ha CGrabBuffer.cpp e CGrabBuffer.h). Qui trovo il primo problema. Che tipo devono essere questi due obiettivi? Voglio solo che generino file .o.
- sul buffer main.cpp:
- Una volta fatto questo, ho digitare
M-x ede-customize-current-target
a tutti e tre gli obiettivi e aggiungo un po 'di percorsi di inclusione, alcune librerie, ecc - Dopo di ciò, se chiamo
M-x ede-compile-project
esso non compilato perché:- Prova a compilare main.cpp prima; Non ho idea di come specificare (usando EDE) che sia Utils.o che CGrabBuffer.o siano necessari prima di provare a costruire main.cpp.
- Se cambio manualmente l'ordine (modificando il Makefile), non è in grado di collegare main.cpp perché non riesce a trovare Utils.o e CGrabBuffer.o.
Come potete vedere, io sono nel bel mezzo di un grande pasticcio. Forse non sto nemmeno capendo cosa significa "bersaglio" in EDE. Ho anche letto dell'esistenza di ede-cpp-root-project che deve essere specificato nel file .emacs. Non l'ho provato perché quello che penso che faccia è solo un aiuto con la semantica. Non genera Makefile, vero? Posso avere (o ho bisogno) un progetto EDE costruito con Project.el e la stessa cosa usando ede-cpp-root-project per la semantica? O è ridondante?
Scusa Se ho frainteso un sacco di cose, ma sono molto confuso e essere nuovo in Emac rende le cose peggiori. Grazie per la vostra pazienza!
MODIFICA: con un po 'di armeggiare e le risposte che ho ricevuto sono stato in grado di capire un sacco di cose, quindi grazie mille. Quello che ancora non capisco è l'uso del progetto ede-cpp-root che deve essere specificato nel file .emacs. È solo per la semantica C++? È ridondante avere il progetto con AND di Project.el anche le linee elisp in .emacs?
Sto usando CEDET ma non riesco a capire il supporto del progetto per la mia vita. Io uso solo Makefile esterni e aggiungo il tipo di progetto "semplice" in cima a quello. –
Sì, e questa è l'unica cosa che mi fa rimanere attaccato ad altri IDE come Eclipse che ti permettono di gestire tutto questo più facilmente ... – pparescasellas
Ottima domanda. Ho passato gli ultimi giorni a cercare di far funzionare questo genere di cose, ma proprio quando penso di andare da qualche parte, tutto si sgretola. Dire che EDE è scarsamente documentato è un eufemismo. – Mike