1. 程式人生 > >linux下安裝protobuf教程+示例(詳細)

linux下安裝protobuf教程+示例(詳細)

1 在網站 http://code.google.com/p/protobuf/downloads/list上可以下載 Protobuf 的原始碼。然後解壓編譯安裝便可以使用它了。 安裝步驟如下所示:  tar -xzf protobuf-2.1.0.tar.gz   cd protobuf-2.1.0   ./configure --prefix=/usr/local/protobuf  make   make check   make install   2 > sudo vim /etc/profile  新增 export PATH=$PATH:/usr/local/protobuf/bin/ export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/ 儲存執行 source /etc/profile 同時 在~/.profile中新增上面兩行程式碼,否則會出現登入使用者找不到protoc命令 3 > 配置動態連結庫路徑 sudo vim /etc/ld.so.conf 插入: /usr/local/protobuf/lib 4 > su  #root 許可權 ldconfig 5> 寫訊息檔案:msg.proto
package lm; 
message helloworld 
{ 
    required int32     id = 1;  // ID   
    required string    str = 2;  // str  
    optional int32     opt = 3;  //optional field 
}
將訊息檔案msg.proto對映成cpp檔案 protoc -I=. --cpp_out=. msg.proto 可以看到生成了 msg.pb.h 和msg.pb.cc 6> 寫序列化訊息的程序 write.cc
#include "msg.pb.h"
#include <fstream>
#include <iostream>
using namespace std;

int main(void) 
{ 

    lm::helloworld msg1; 
    msg1.set_id(101); 
    msg1.set_str("hello"); 
    fstream output("./log", ios::out | ios::trunc | ios::binary); 

    if (!msg1.SerializeToOstream(&output)) { 
        cerr << "Failed to write msg." << endl; 
        return -1; 
    }        
    return 0; 
}
編譯 write.cc   g++  msg.pb.cc write.cc -o write  `pkg-config --cflags --libs protobuf` -lpthread 執行write  ./write, 可以看到生成了log檔案 7> 寫反序列化的程序 reader.cc
#include "msg.pb.h"
#include <fstream>
#include <iostream>
using namespace std;

void ListMsg(const lm::helloworld & msg) {  
    cout << msg.id() << endl; 
    cout << msg.str() << endl; 
} 

int main(int argc, char* argv[]) { 

    lm::helloworld msg1; 

    { 
        fstream input("./log", ios::in | ios::binary); 
        if (!msg1.ParseFromIstream(&input)) { 
            cerr << "Failed to parse address book." << endl; 
            return -1; 
        }       
    } 

    ListMsg(msg1); 
}
編譯:g++  msg.pb.cc reader.cc -o reader  `pkg-config --cflags --libs protobuf` -lpthread 執行./reader 輸出 : 101 hello
8> 寫Makefile檔案
all: write reader

clean:
    rm -f write reader msg.*.cc msg.*.h *.o  log

proto_msg:
    protoc --cpp_out=. msg.proto


write: msg.pb.cc write.cc
    g++  msg.pb.cc write.cc -o write  `pkg-config --cflags --libs protobuf`

reader: msg.pb.cc reader.cc
    g++  msg.pb.cc reader.cc -o reader  `pkg-config --cflags --libs protobuf`




相關推薦

linux安裝protobuf教程+示例詳細

1 在網站 http://code.google.com/p/protobuf/downloads/list上可以下載 Protobuf 的原始碼。然後解壓編譯安裝便可以使用它了。 安裝步驟如下所示:  tar -xzf protobuf-2.1.0.tar.gz   cd

Linux安裝maven私服nexus3

一、所需軟體 jdk8,nexus3 Nexus下載地址:https://www.sonatype.com/download-

【Centos7】如何在Linux安裝和使用gc++詳細

【前言】最近在學習基於Linux的C++程式設計,但是在安裝編譯器的過程中卻遇到了不少問題,網上的一些回答也不夠詳細,因此有了這篇文章。【Centos7】注意,我是在Linux虛擬機器下的centos7中完成的以下教程。【root許可權】開啟終端,或者按Ctrl+Alt+F2

linux安裝protobuf及cmake編譯

light present mini require fetching AS exp web .gz 一.protobuf 安裝 protobuf版本:2.6.1 下載地址:https://github.com/google/protobuf/archive/v2.6.1.

linux安裝及配置jenkinswar包

eight 成功 .html 輸入 需要 目錄 bubuko grep test 1、由於Jenkins是基於Java開發的,安裝前確認操作系統已經安裝了jdk和tomcat 如何安裝,請參考WINDOWS/LINUX上部署TOMCAT服務器 2、下載war包: htt

linux安裝anaconda教程,並新增清華映象

    最近兩年,人工智慧異常的火爆,各行各業的人都在像人工智慧方向靠近,而目前python是人工智慧領域使用的十分方便的程式語言,接下來為大家介紹一下python的一個開源發新版本——anaconda的安裝方法(主要針對linux系統,Windows安裝方法除了前面

centos 7( linux )安裝elasticsearch教程

目錄 概述 環境準備 elaticsearch簡介 安裝elasticsearch 彩蛋 概述     很久沒有寫部落格了,最近在做全文檢索的專案,發現elasticsearch踩了不少坑,百度點

Linux安裝centos7教程

注意事項:安裝時一定要選好網路,網路選擇NAT模式,安裝完成之後,檢查是否可以連線外網,curl www.baidu.com Linux常用命令:1.cp nginx-1.8.0.tar.gz(檔案) nginx(資料夾路徑) 刪除資料夾命令:rm -rf 資料夾名字 2.使用yum安裝一些必

如何在Linux Ubuntu 16.04安裝及開啟PyCharm

下載 安裝 PyCharm 下載好的檔案的名稱可能是 ‘pycharm-community-2017.2.3.tar.gz’ 首先開啟終端,然後通過下面的命令進入下載檔案所在的資料夾: cd ~/Downloads 或者如果資料夾是中文 cd ~/下載 1

linux安裝nginx+php+mysql環境詳細講解

linux環境:centos 7.0 64位 nginx:nginx-1.8.0.tar.gz php: php-7.1.1.tar.gz mysql: mysql-5.6.21.tar.gz libxml2:libxml2-2.9.1.tar.gz openss

Linux搭建Redis分散式叢集詳細圖解演示

一 環境搭建.        1.1 環境準備.三臺虛擬機器.redis的版本是3.2.9.redis的各個版本下載地址:連結. 三個主節點三個從節點.       

Linux搭建Zookeeper分散式叢集詳細圖解演示

一:實驗環境搭建.       1.1 Linux使用的是CentOS7.3的發行版,Zookeeper的版本是3.4.12.搭建三個節點的叢集,是分別在三臺虛擬機器上配置Zookeeper節點,不是在一臺虛擬機器上搭建的三個Zookeepe

CentosNginx的安裝和使用步驟詳細

1、編譯環境gcc  g++ 開發庫之類的需要提前裝好;   yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel 2、首先安裝PCRE  pcre功能是讓nginx有r

Linux 安裝翻譯軟體——stardict星際譯王

眾所周知,我們在學習新知識的時候什麼最有效?當然是看官網的API,但是苦於很多API都是英文的,於是我們就不得不找翻譯軟體的幫忙了。此處就帶大家裝一款非常優秀的翻譯軟體,也有取詞功能。 1.安裝stardict 在Ubuntu中有兩種安裝方式 在

Linux安裝maven私服基於docker

Nexus 映象說明 本映象基於官方映象檔案,僅修改系統時間為中國東8區,其他配置未變。 建立資料目錄 遞迴建立

Linux安裝Redis4.0版本簡便方法

    Redis介紹: Redis 是完全開源免費的,遵守BSD協議,是一個高效能的key-value資料庫。 Redis 與其他 key - value 快取產品有以下三個特點: Redis支援資料的持久化RDB和AOF,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行

Linux安裝svn教程

### 前言 最近買了新伺服器,準備開始弄一些個人的開源專案。有了伺服器當然是搞一波svn啦。方便自己的資料上傳和下載。於是在此記錄搭建svn的方式,方便以後直接使用。 ### 安裝 使用yum源進行安裝,十分的方便。 ``` yum install subversion ``` ### 配置svn ####

linux安裝zsh和p10k的詳細過程

[TOC] ### 下載zsh ``` sudo apt-get install zsh sudo apt-get install git ``` ### 下載oh-my-zsh 因為zsh配置起來太麻煩了,直接安裝`oh-my-zsh`即可,前往`oh-my-zsh`官網: > https:

LinuxMySQL主從復制

mysql 鄰居 MySQL的一主多從模式原理結構圖配置步驟1.主服務器: 1. 改變server id 2. 啟用二進制日誌文件 3. 創建具有復制的用戶123123具體操作請看:http://www.crazyrui.pw:8088/index.php/2017/07/23/linux_m

004-Linux操作目錄常用命令mkdir

刪除目錄 note 當前 目錄 name ges 否則 技術分享 mdi 1,mkdir 創建目錄 當前目錄下創建一個目錄 mkdir dir 創建含有子目錄的方式 mkdir -p dir/t11/t1