解决方案
我个人从未使用过 Makepp,但由于它是 GNU Make 的直接替代品,因此您应该能够执行以下操作:
build: foo.h foo.cpp
g++ $(CFLAGS) foo.cpp -o $(LFLAGS) foo
foo.h foo.cpp: foo.lzz
lzz foo.lzz
也不确定那里的 lzz 调用,但这应该有帮助。您可以在以下位置阅读有关此内容的更多信息 http://theory.uwinnipeg.ca/gnu/make/make_37.html.
其他提示
LZ真是厉害啊!这正是我一直在寻找的 http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c50de73b70a6a957/f3f47fcdcfb6bc09
实际上,您所需要的只是(通常)依赖于链接规则中的 foo.o 以及调用 lzz 的模式规则:
%.cpp %.h: %.lzz
lzz $(input)
其余的将自动就位。当编译任何包含 foo.h 的源代码,或将 foo.o 链接到库或程序时,lzz 将首先被自动调用。
Makepp 还将识别是否仅更改了时间戳而不更改了生成的文件的内容,并忽略它。但通过使用 lzz 选项来抑制重新创建相同的文件,减少它的工作量也没什么坏处。
问候——丹尼尔
不隶属于 StackOverflow