我使用这个名为Lazy C++的工具,它将单个 C++ .lzz 文件分解为 .h 和 .cpp 文件。我希望Makepp在我构建 .lzz 文件的规则之后期望这两个文件都存在,但我不确定如何将两个目标放入单个构建行。
cdleary
问问题
438 次
2 回答
3
我从未亲自使用过 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阅读更多相关信息。
于 2008-08-30T02:10:19.930 回答
2
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 选项来抑制重新创建相同的文件,减少它的工作量并没有什么坏处。
问候——丹尼尔
于 2010-04-26T22:57:48.287 回答