【问题标题】:Rename generated files in Makefile在 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 文件。

标签: c++ linux makefile


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多