2013-09-28 11 views
8

ho una struttura di progetto del genere:Linux: Crea automaticamente C++ makefile dal dato file sorgente

src/main.cpp 
src/Folder/this.cpp 
src/Folder/that.cpp 
src/NewFolder/foo.cp 
// etc. 

Inoltre ho bisogno di alcune librerie in modo che possa collegare, ad esempio, lboost_system. Come posso semplicemente creare un makefile con queste informazioni fornite? Leggo tutto il tempo sulla creazione manuale di un makefile, su CMake e così via, ma questo a mio avviso è complicato! Non c'è alcun strumento dove posso specificare le seguenti informazioni:

Source folder: /home/bla/src/ 
Additional Libs: lboost_system 
Compiler Flags: -std=c++0x (or whatever) 

E un makefile viene generato ?! E 'davvero così difficile?

+0

Questo è praticamente tutto quello che c'è in un file cmake. E farlo con la semplice vecchia marca non è molto più difficile. – Flexo

+0

anche tu puoi usare qualche IDE, lo farà per te – 4pie0

+0

In realtà stavo usando Netbeans per generare makefile. Ma prima questo è in qualche modo "over engineered" per la sola generazione di un makefile e il secondo sto usando ora un pc con una potenza di elaborazione molto bassa. Installare Eclipse o Netbeans è terribile – Anonymous

risposta

5

È possibile scrivere un Makefile in modo generico, ovvero non è necessario specificare ciascun file di origine uno per uno. Dai uno sguardo a http://www.puxan.com/Computers/Howto-write-generic-Makefiles, l'ho fatto parecchio tempo fa, quindi non ricordo i dettagli, ma alla fine l'aggiunta di file * .cpp non richiede (di solito) una modifica al Makefile.

Puoi anche dare un'occhiata a automake (http://www.gnu.org/software/automake/manual/automake.html) che è un po 'più avanti rispetto a cmake. Standardizza gli obiettivi e sembra semplificarti la vita se vuoi distribuire il tuo software come file sorgente.