Crea sorgente con due destinazioni
-
09-06-2019 - |
Domanda
Utilizzo questo strumento chiamato C++ pigro che suddivide un singolo file C++ .lzz in un file .h e .cpp.Voglio Makepp aspettarmi che entrambi questi file esistano dopo la mia regola per la creazione di file .lzz, ma non sono sicuro di come inserire due destinazioni in un'unica riga di compilazione.
Soluzione
Non ho mai usato Makepp personalmente, ma poiché è un sostituto immediato di GNU Make, dovresti essere in grado di fare qualcosa del tipo:
build: foo.h foo.cpp
g++ $(CFLAGS) foo.cpp -o $(LFLAGS) foo
foo.h foo.cpp: foo.lzz
lzz foo.lzz
Inoltre non sono sicuro dell'invocazione lzz lì, ma dovrebbe aiutare.Puoi leggere di più a riguardo su http://theory.uwinnipeg.ca/gnu/make/make_37.html.
Altri suggerimenti
Lzz è incredibile!Questo è proprio quello che stavo cercando http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c50de73b70a6a957/f3f47fcdcfb6bc09
In realtà tutto ciò di cui hai bisogno è dipendere (tipicamente) da foo.o nella tua regola di collegamento e da una regola di modello per chiamare lzz:
%.cpp %.h: %.lzz
lzz $(input)
Il resto andrà a posto automaticamente.Quando si compila un sorgente che include foo.h, o si collega foo.o a una libreria o programma, lzz verrà prima chiamato automaticamente.
Makepp riconoscerà anche se è cambiato solo il timestamp ma non il contenuto del file prodotto e lo ignorerà.Ma non può far male dargli meno da fare, usando le opzioni lzz per evitare di ricreare un file identico.
Saluti: Daniele