微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。