1、安裝
ubuntu下的安裝很簡單(雖然要安裝幾個包):
具體參見:[url]
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.
[color=red]只編譯靜態庫:[/color]
./configure --disable-shared
2、編譯
.proto檔案編譯:
protoc addressbook.proto --cpp_out . # 用於生成c++標頭檔案和.cc檔案
protoc addressbook.proto --python_out . #用於生成python相應的檔案
注意: 可以通過 -i 引數更改搜尋路徑, 所有檔案的路徑必須為絕對路徑,,
比如官方給的例子(除了上面那種所有檔案都在當前資料夾的情況):
protoc -i=$src_dir --python_out=$dst_dir $src_dir/addressbook.proto
c++檔案編譯:
下面命令中的pkg-config --cflags --libs protobuf會生成proto buff所需的編譯選項(頭檔案目錄,-pthread等)
c++ my_program.cc my_proto.pb.cc `pkg-config --cflags --libs protobuf`
3、教程
python版:[url]
可以print(proto)來看proto例項的內容
c++版:[url]
每個proto類都有乙個debugstring()方法,用於返回供人看的內容
完成編譯命令:
#只能用g++ 用gcc不行!
echo compile c++ part
protoc addressbook.proto --cpp_out .
g++ writeaddress.cc addressbook.pb.cc -o write.out `pkg-config --cflags --libs protobuf`
g++ readaddress.cc addressbook.pb.cc -o read.out `pkg-config --cflags --libs protobuf`
echo use ./write.out add.txt to generate address file
echo use ./read.out add.txt to read address file
echo compile python part
protoc addressbook.proto --python_out .
echo use python writeaddress.py add.txt to generate address file
echo use python readaddress.py add.txt to read address file
官方教程中有一些錯誤,,完整的**(包含編譯用的shell命令)見附件
Protocol Buffers 編譯工具安裝
作業系統 osx 語言環境 golang 解壓後 將bin下面的protoc檔案拷貝到 gopath下,gopath已經在path下,保證protoc在path下即可 我放在這裡,which protoc users macbook go bin protoc 然後,將include複製到 gopa...
Protocol Buffers使用注意事項
protocol buffers做為廣泛使用的乙個序列化開源庫,提供了很多語言下的支援,本文就談談msvc c 使用pb遇到的問題,當然這些問題因為每個人的使用模式不同,可能都不一樣,本文也不討論怎麼寫proto及編譯。我們使用pb做序列化可以把pb生成靜態庫或者動態庫 libprotobuf.dl...
Protocol Buffers 在iOS的使用
protocol buffers 簡單的說是對結構化的資料進行序列化 json格式 xml格式 的一種語言,但是更小 更快 更簡單,更多的用於im即時通訊這一塊,有助於節省流量,提高效能。protocol buffers 是谷歌的,官網連線 現在我們來簡單的體驗下 protocol buffers ...