问题描述
gRPC示例显示了一个原始文件和一个输出文件的使用。但是,为我提供了一个导入另一个文件的原型文件,该文件又从另一个目录导入了几个文件。
该协议是否应该从导入的文件生成标头和源文件?还是需要在每个单独的原始文件上运行编译器?
有人在原始文件导入的地方举个例子吗?
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 (将#修改为@)