MAC OS 下protobuf 2.6.1 版本編譯安裝及proto型別檔案編譯
由於工程中proto語法採用的是2.0的,所以選擇安裝2.6.1版本的protobuf。(3.0和2.0語法不同,如果安裝3.0以上版本的protobuf,在編譯的時候應該需要增加啥~~~)
編譯安裝步驟:
1. 安裝 protobuf 依賴項, 其依賴於autoconf、 automake、 libtool ,使用brew info 檢查是否安裝,如果沒有安裝,請依次執行brew install autoconf、brew install automake、brew install libtool
2. 確認依賴項已經正確安裝,下載protobuf 2.6.1 資料夾(
3. 下載protobuf檔案編譯的依賴項gtest,https://github.com/google/googletest/tree/release-1.5.0 , 下載後解壓,更改檔名為gtest,放置在protobuf資料夾下
3. cd protobuf-2.6.1/
4. ./autogen.sh
5. ./configure CPPFLAGS=-DGTEST_USE_OWN_TR1_TUPLE=1
6. make
7. make check
8. sudo make install
經歷以上步驟應該可正常安裝~~~
9. protoc --version 檢視安裝的版本
proto檔案編譯
1. 進入到proto 檔案的目錄下(假設有一個檔案hello.proto)
2. 執行 protoc hello.proto --cpp_out=.
即可看到在當前資料夾下產生相應的C++檔案(hello.pb.h,hello.pb.cc)
部分釋義
1. 在執行 ./autogen.sh 之前,請先下載gtest, 因為 autogen.sh 指令碼中的下載連結已經404了,所以提前下載下來,再去執行./autogen.sh就不會再這一步失敗了。
2. 編譯部分,第5步,如果直接執行./configure,可能會出現錯誤:fatal error: 'tr1/tuple' file not found ,所以需要在./configure後增加引數
3. 部分教程可能讓直接執行./configure, 但新的目錄下沒有這個檔案,需要先執行./autogen.sh 生成
4. 如果要安裝最新版的protobuf,可以直接執行 brew install protobuf
5. 編譯proto 檔案的標準格式為:
protoc proto檔案路徑 --cpp_out=C++程式碼檔案匯出目錄
其中cpp_out是以proto檔案路徑為基礎的,如果想要在當前目錄生成,直接寫"." 即可
以上內容整理參考:
http://www.wangquanwei.com/2017-06-10-1.html
https://blog.csdn.net/xocoder/article/details/9173947