在Makefile中重命名生成的文件

时间:2016-09-16 02:51:45

标签: c++ linux makefile

我必须修改Makefile,以便在构建.cc文件之前将扩展名为.cpp的中间文件移动到.o.。我修改过的Makefile如下所示。

PROTOC=protoc
all: client_grpc pb

client_grpc: abc.pb.o abc.grpc.pb.o client_grpc.o
  $(CXX) $^ $(LDFLAGS) -o $@

pb: %.pb.cc
  mv $^ $@ 

%.grpc.pb.cc: %.proto
  $(PROTOC) --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $<

%.pb.cc: %.proto
  $(PROTOC) --cpp_out=. $<

clean:
  rm -f *.o *.pb.cc *.pb.h client_gqegrpc

protoc是一个生成.cc个文件的编译器。如何制作目标,以便在生成.cc文件之后将其移至.cpp,然后使用client_grpc文件构建.cpp

1 个答案:

答案 0 :(得分:3)

执行此操作的常用方法是让您的规则生成.cpp文件:

%.pb.cpp: %.proto
        $(PROTOC) --cpp_out=. $<
        mv $*.pb.cc $*.pb.cpp