用cmake编译协议缓冲区的问题

时间:2014-07-01 16:43:25

标签: cmake protocol-buffers

我的项目结构如下:

Project_Root:

- CMakeLists.txt
- src
    * src_file.cpp
    * CMakeLists.txt
- proto
    * proto_file.proto
    * CMakeLists.txt

我在编译proto文件时遇到问题。

    Error: PROTOBUF_GENERATE_CPP() called without any proto files

“proto”文件夹中的CMakeLists.txtx文件具有如下结构:

    find_package( Protobuf REQUIRED ) 
    include_directories(${PROTOBUF_INCLUDE_DIR})
    include_directories( ${CMAKE_CURRENT_BINARY_DIR} )

    protobuf_generate_cpp(
    PROTO_SRCS
    PROTO_HDRS
    proto_file.proto )

    add_library( proto_lib} 
     ${PROTO_SRCS} 
     ${PROTO_HDRS} )

    target_link_libraries( proto_lib } 
      ${EXTRA_LIBS} 
      )

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

SET(args 
   PROTOFILES proto_file.proto 
   OUTPATH ${CMAKE_CURRENT_SOURCE_DIR}
)
protobuf_generate_cpp(
PROTO_SRCS
PROTO_HDRS
${args})