Pregunta

Yo uso esta herramienta llamada C ++ perezoso que divide un único archivo C++ .lzz en un archivo .h y .cpp.Quiero Makepp Es de esperar que ambos archivos existan después de mi regla para crear archivos .lzz, pero no estoy seguro de cómo colocar dos objetivos en una sola línea de compilación.

¿Fue útil?

Solución

Nunca he usado Makepp personalmente, pero como es un reemplazo directo de GNU Make, deberías poder hacer algo como:

build: foo.h foo.cpp
   g++ $(CFLAGS) foo.cpp -o $(LFLAGS) foo

foo.h foo.cpp: foo.lzz
   lzz foo.lzz

Tampoco estoy seguro acerca de la invocación lzz allí, pero eso debería ayudar.Puedes leer más sobre esto en http://theory.uwinnipeg.ca/gnu/make/make_37.html.

Otros consejos

¡Lzz es increíble!Esto es justo lo que estaba buscando http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c50de73b70a6a957/f3f47fcdcfb6bc09

En realidad, todo lo que necesitas es depender (normalmente) de foo.o en tu regla de enlace y una regla de patrón para llamar a lzz:

%.cpp %.h: %.lzz
    lzz $(input)

El resto encajará automáticamente.Al compilar cualquier fuente que incluya foo.h, o vincular foo.o a una biblioteca o programa, primero se llamará automáticamente a lzz.

Makepp también reconocerá si solo cambió la marca de tiempo pero no el contenido del archivo producido, y lo ignorará.Pero no está de más darle menos que hacer, usando las opciones lzz para evitar la recreación de un archivo idéntico.

Saludos--Daniel

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top