cmake 中使用 protobuf 生成文件

protobuf 提供了自动生成文件的功能,我直接看的cmake文件,里面没说函数说明,我没有全部弄明白,但可以正常使用:


    
add_library(myTarget 
	${src}
)


protobuf_generate(
    TARGET myTarget                             // 这个必须有,否则提示错误
    LANGUAGE cpp                                // 此行可选,默认cpp
    OUT_VAR PROTO_SRCS                          // 此行可选,因为生成的代码已经添加到target里
    PROTOC_OUT_DIR ${CMAKE_CURRENT_SOURCE_DIR}  // 这行很重要,windows下有时要添加dll_export.h文件
    EXPORT_MACRO ECIO_PB_Exports                // windows下设定dll_export
    ${PROTO_FILES}                              // *.proto 文件
    )
    
target_link_libraries(myTarget
    ${Protobuf_LIBRARIES})
  

这里要说明下:

  1. PROTOBUF_GENERATE使用时,.proto文件要在当前目录下,换句话说,.proto文件和 add_libraryadd_executable,在同一个目录,否则会出错
  2. protobuf 提供了 PROTOBUF_GENERATEPROTOBUF_GENERATE_CPP两个宏,都能用来生成cpp代码文件,但后者不能设定输出目录,不方便。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章