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代碼文件,但後者不能設定輸出目錄,不方便。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章