日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

protobuf入门教程(一):简介和安装

發布時間:2024/4/11 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 protobuf入门教程(一):简介和安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1 簡介

1.1.1 什么是protobuf

protobuf也叫protocol buffer是google 的一種數據交換的格式,它獨立于語言,獨立于平臺。google 提供了多種語言的實現:Java、c#、c++、Go?和?Python,每一種實現都包含了相應語言的編譯器以及庫文件。

由于它是一種二進制的格式,比使用 xml 、json進行數據交換快許多??梢园阉糜诜植际綉弥g的數據通信或者異構環境下的數據交換。作為一種效率和兼容性都很優秀的二進制數據傳輸格式,可以用于諸如網絡傳輸、配置文件、數據存儲等諸多領域。

更多詳情請看:https://developers.google.com/protocol-buffers/docs/overview(需要翻墻)

1.1.2 protobuf的優缺點

1.1.2.1 優點

  • 性能好/效率高
  • 代碼生成機制
  • 支持“向后兼容”和“向前兼容”
  • 支持多種編程語言

1.1.2.1 缺點

  • 應用不夠廣(相比xml和json)
  • 二進制格式導致可讀性差
  • 缺乏自描述

1.2 安裝

1.2.1 Ubuntu環境搭建

github源代碼下載地址:https://github.com/google/protobuf

源碼包中的src/README.md, 有詳細的安裝說明,安裝過程如下:?
1、解壓壓縮包:unzip protobuf-master.zip

2、進入解壓后的文件夾:cd protobuf-master

3、安裝所需工具:sudo apt-get install autoconf automake libtool curl make g++ unzip

4、自動生成configure配置文件:./autogen.sh

5、配置環境:./configure

6、編譯源代碼(時間比較長):make

7、安裝:sudo make install

8、刷新動態庫:sudo ldconfig

1.2.2 環境測試

1.2.2.1 examples例子

在源代碼包中,有個examples文件夾,把里面的addressbook.proto、add_person.cc、list_people.cc拷貝出來:?

1.2.2.2 編譯 .proto文件

  • protoc:protobuf自帶的編譯工具,將.proto文件生成指定的類
  • –cpp_out:指定輸出特定的語言和路徑

通過protoc工具編譯.proto文件時,編譯器將生成所選擇語言的代碼,這些代碼可以操作在.proto文件中定義的消息類型,包括獲取、設置字段值,將消息序列化到一個輸出流中,以及從一個輸入流中解析消息。

對C++來說,編譯器會為每個.proto文件生成一個.h文件和一個.cc文件,.proto文件中的每一個消息有一個對應的類。

1.2.2.3 編譯運行測試案例

1) 寫文件(序列化)

編譯代碼:?

  • 反引號(` 數字1前面的符號):反引號的作用就是將反引號內的linux命令執行
  • pkg-config 是通過庫提供的一個.pc文件獲得庫的各種必要信息的,包括版本信息、編譯和連接需要的參數等。
  • pkg-config –cflags protobuf:列出指定共享庫的預處理和編譯flags

運行可執行程序:?

pb.xxx文件內容如下:?

2) 讀文件(反序列化)

參考資料:?
1、http://baike.baidu.com?
2、http://www.jianshu.com/p/746bb9d81380

總結

以上是生活随笔為你收集整理的protobuf入门教程(一):简介和安装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。