Google Protobuf-Protoc编译带有导入的Proto文件

问题描述

gRPC示例显示一个原始文件一个输出文件的使用。但是,为我提供了一个导入另一个文件的原型文件,该文件又从另一个目录导入了几个文件

该协议是否应该从导入的文件生成标头和源文件?还是需要在每个单独的原始文件上运行编译器?

有人在原始文件导入的地方举个例子吗?

我在cmake中有这样的东西来编译一个原型文件

add_custom_command(
    OUTPUT "${chat_proto_srcs}" "${chat_proto_hdrs}" "${chat_grpc_srcs}" "${chat_grpc_hdrs}"
    COMMAND ${PROTOC_COMPILER}
    ARGS --grpc_out "${CMAKE_CURRENT_BINARY_DIR}"
    --cpp_out "${CMAKE_CURRENT_BINARY_DIR}"
    -I "${chat_proto_path}"
    --plugin=protoc-gen-grpc="${GRPC_PLUGIN}"
    "${chat_proto}"
    DEPENDS "${chat_proto}")

但是对于从${chat_proto}指向的文件中导入的任何文件,似乎都不会产生任何作用

我也尝试过:

# Generated Proto files
file(GLOB_RECURSE proto_files "${CMAKE_CURRENT_SOURCE_DIR}/*.proto")
PROTOBUF_GENERATE_CPP(proto_srcs proto_hdrs ${proto_files} PLUGIN protoc-gen-grpc=${GRPC_PLUGIN})
add_custom_target(proto_dep DEPENDS ${proto_srcs} ${proto_hdrs})
message(STATUS "Generated source files are ${proto_srcs}")

但是,我看不到任何.grpc.pb.cc文件,也不知道如何使用add_library将它们的列表添加到我的库的编译中。如果我正确理解了文档,则必须编译*.pb.cc文件*.grpc.pb.cc文件

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)