Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake Google Protobuf-Protoc使用导入编译Proto文件_Cmake_Protocol Buffers_Grpc - Fatal编程技术网

Cmake Google Protobuf-Protoc使用导入编译Proto文件

Cmake Google Protobuf-Protoc使用导入编译Proto文件,cmake,protocol-buffers,grpc,Cmake,Protocol Buffers,Grpc,gRPC示例显示了一个原型文件和一个输出文件的使用。然而,我得到了一个导入另一个的原型文件,该原型文件又从另一个目录导入了几个 protoc是否应该根据导入的文件生成头文件和源文件?或者您需要在每个单独的proto文件上运行编译器吗 是否有人有一个示例cmake,其中导入了原型文件 我的cmake中有这样的东西来编译一个proto文件: add_custom_command( OUTPUT "${chat_proto_srcs}" "${chat_proto

gRPC示例显示了一个原型文件和一个输出文件的使用。然而,我得到了一个导入另一个的原型文件,该原型文件又从另一个目录导入了几个

protoc是否应该根据导入的文件生成头文件和源文件?或者您需要在每个单独的proto文件上运行编译器吗

是否有人有一个示例cmake,其中导入了原型文件

我的cmake中有这样的东西来编译一个proto文件:

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\u 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\u library
将它们的列表添加到我的库的编译中。如果我正确理解文档,我必须编译
*.pb.cc
文件以及
*.grpc.pb.cc
文件。

据我所知,是的,你必须为每个文件调用它。或者像常规编译器一样,将所有文件添加到一个调用中(据我所知),是的,您必须为每个文件调用它。或者像常规编译器一样,将所有文件添加到单个调用中