2016-09-16 426 views
3

我必须修改Makefile,以便在构建.o.文件之前将带有扩展名.cc的中间文件移动到.cpp。我修改后的Makefile如下所示。在Makefile中重命名生成的文件

PROTOC=protoc 
all: client_grpc pb 

client_grpc: abc.pb.o abc.grpc.pb.o client_grpc.o 
    $(CXX) $^ $(LDFLAGS) -o [email protected] 

pb: %.pb.cc 
    mv $^ [email protected] 

%.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

只是好奇,如果你为什么要重命名的.cc文件.cpp文件什么特别的原因?只要前者是真正的C++代码,就可以将.cc文件直接编译为.o文件。 –

+0

还有另一个工具只能识别.cpp文件。 – damleak

回答

2

通常的方式做,这将有您的规则产生.cpp文件:

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