1. 程式人生 > >MAC OS 下protobuf 2.6.1 版本編譯安裝及proto型別檔案編譯

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 資料夾(

https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz),下載後解壓到自己想要放置的路徑

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