在 Makefile 中重命名生成的文件
Posted
技术标签:
【中文标题】在 Makefile 中重命名生成的文件【英文标题】:Rename generated files in Makefile 【发布时间】:2016-09-16 02:51:44 【问题描述】:我必须修改 Makefile,以便在构建 .o.
文件之前将扩展名为 .cc
的中间文件移动到 .cpp
。我修改后的 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
,然后使用 .cpp
文件构建 client_grpc
?
【问题讨论】:
只是好奇,是否有任何特殊原因需要将 .cc 文件重命名为 .cpp 文件?你可以直接将.cc文件编译成.o文件,只要前者是真正的c++代码。 还有一个工具可以只识别 .cpp 文件。 【参考方案1】:执行此操作的通常方法是让您的规则生成 .cpp 文件:
%.pb.cpp: %.proto
$(PROTOC) --cpp_out=. $<
mv $*.pb.cc $*.pb.cpp
【讨论】:
以上是关于在 Makefile 中重命名生成的文件的主要内容,如果未能解决你的问题,请参考以下文章