protobuf安裝及其簡單使用

2021-10-07 11:56:43 字數 1767 閱讀 4381

protocol buffers 是一種語言中立,平台無關,可擴充套件的序列化資料的格式,可用於通訊協議,資料儲存等。

protocol buffers 在序列化資料方面,它是靈活的,高效的。相比於 xml 來說,protocol buffers更加小巧,更加快速,更加簡單

一旦定義了要處理的資料的資料結構之後,就可以利用 protocol buffers 的**生成工具生成相關的**。甚至可以在無需重新部署程式的情況下更新資料結構。

只需使用 protobuf 對資料結構進行一次描述,即可利用各種不同語言或從各種不同資料流中對你的結構化資料輕鬆讀寫。

protocol buffers 很適合做資料儲存或 rpc 資料交換格式。可用於通訊協議、資料儲存等領域的語言無關、平台無關、可擴充套件的序列化結構資料格式。

解壓

tar zxvf protobuf-cpp-3.8.0.tar.gz

編譯(make的時間有點長)

cd protobuf-3.8.0/

./configure

make

sudo

make

install

顯示版本資訊

protoc –version

編寫proto檔案

注意:目前 protocol buffers 最新版本是 proto3,與老的版本 proto2 還是有些區別的。這兩個版本的 api 不完全相容。將proto檔案生成對應的.cc和.**件

create.s**件

#!/bin/sh

# proto檔案在**

src_dir=./

# .h .cc輸出到**

dst_dir=../

#c++

protoc -i=$src_dir --cpp_out=$dst_dir $src_dir/*.proto

編譯範例

比如:

g++ -o code_test code_test.cpp im.basedefine.pb.cc im.login.pb.cc -lprotobuf -lpthread

im.login.proto檔案

syntax = "proto3";  // syntax 版本2/3是不一樣,預設是proto2

package im.login; // package 生成對應的c++命名空間 im::login::

import "im.basedefine.proto"; // import 引用其他proto檔案

option optimize_for = lite_runtime; // 做效率與空間優化

// message關鍵字 代表乙個物件

message phone

message book

message person

//使用t開頭測試

message tint32

message tstring

im.basedefine.proto檔案

syntax = "proto3";

package im.basedefine;

option optimize_for = lite_runtime;

enum phonetype

protobuf簡單使用

一 介紹 首先,protobuf是乙個開源專案,而且是後台很硬的開源專案。網上現有的大部分 至少80 開源專案,要麼是某人單幹 要麼是幾個閒雜人等合夥搞。而protobuf則不然,它是 鼎鼎大名的google公司開發出來,並且在google內部久經考驗的乙個東東。由此可見,它的作者絕非一般閒雜人等可...

Anaconda Jupyter簡單安裝使用

anaconda jupyter notebook anaconda 安裝 作業系統 ubuntu 版本 anaconda3 5.1.0 linux x86 64.sh python 3.4 anaconda3 5.1.0 linux x86 64.sh 預設安裝即可 也可指定安裝路徑 配置環境變數...

Windows下安裝OpenSSL及其使用

1.perl 安裝後重啟系統。2latest openssl 並解壓到 c openssl 0.9.8k。參考openssl 目錄下的 install.win32 說明進行安裝 1 進入解壓目錄。cd c openssl 0.9.8k 2 執行configure。perl configure vc ...