我使用以下 Makefile 部分:
.PHONY: all
all: _MyModule.so
_%.so: %.pb.cc %.pb.h
python setup.py build
%.pb.cc %.pb.h: %.proto
protoc --cpp_out=. $^ # Generate these two files together
我希望make
创建_MyModule.so
文件并删除中间体MyModule.pb.cc
和MyModule.pb.h
. 在实践中发生的情况是只有一个文件被删除(.h
或.cpp
)。我还注意到,这取决于它们在_%.so
依赖项列表中出现的顺序。
谁能解释这种行为?
我怎样才能优雅地去除所有的中间体?