真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

2022-10-22下載安裝編譯使用Google-創(chuàng)新互聯(lián)

Protobuf

該庫(kù)的介紹自行百度,項(xiàng)目中使用到的話,參考這篇文檔;PS:本人編寫(xiě)的時(shí)候,也是第一次編譯,請(qǐng)跟隨我的腳步依次進(jìn)行探索。期間可能會(huì)遇到多種多樣的問(wèn)題,我會(huì)分享我的解決方法和思路;

成都創(chuàng)新互聯(lián)公司云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)13年的服務(wù)器租用、成都天府聯(lián)通服務(wù)器托管、云服務(wù)器、網(wǎng)頁(yè)空間、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),已先后獲得國(guó)家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、網(wǎng)頁(yè)空間、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。

文章目錄
  • Protobuf
  • 前言
  • 一、下載地址
  • 二、環(huán)境準(zhǔn)備
  • 三、編譯目標(biāo)
  • 四、學(xué)習(xí)文檔
  • 五、編譯過(guò)程
    • 1.cmake運(yùn)行
    • 2.編譯VS工程
  • 五、proto.exe轉(zhuǎn)換C++
  • 六、測(cè)試demo
  • 七、protobuf拓展知識(shí)點(diǎn)


前言

本文屬于入門(mén)文檔,進(jìn)階的使用,請(qǐng)參考其他網(wǎng)文。


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、下載地址
Github地址:https://github.com/protocolbuffers/protobuf
本人下載版本: protobuf-3.21.8.tar.gz
二、環(huán)境準(zhǔn)備
windows10+ vs2019
使用語(yǔ)言:C++
三、編譯目標(biāo)
生成Windows下x64的庫(kù)
四、學(xué)習(xí)文檔
  1. 首先看下源碼結(jié)構(gòu),如下圖,可以看到大致是使用cmake編譯,支持Windows和Linux編譯;
    在這里插入圖片描述
  2. 看下ReadMe文檔,可以看到C++相關(guān)的在src/readme,打開(kāi)文檔看下編譯過(guò)程:我們下一步使用cmake進(jìn)行編譯;
    在這里插入圖片描述
  3. 打開(kāi)…/cmake/Read.md,學(xué)習(xí)一下文檔內(nèi)容進(jìn)行編譯;
五、編譯過(guò)程 1.cmake運(yùn)行
  1. 在源碼目錄下,創(chuàng)建solution目錄并進(jìn)入
    在這里插入圖片描述
mkdir solution & cd solution
  1. 運(yùn)行cmake指令
cmake -G "Visual Studio 16 2019"  ..

在這里插入圖片描述
修改為:

cmake -G "Visual Studio 16 2019"  .. -Dprotobuf_BUILD_TESTS=OFF

在這里插入圖片描述
生成解決方案如下:

在這里插入圖片描述

2.編譯VS工程
  1. 打開(kāi)protocol.sln文件,進(jìn)行編譯
    在這里插入圖片描述
    在這里插入圖片描述
    生成如下文件:
    在這里插入圖片描述
五、proto.exe轉(zhuǎn)換C++
  1. 編寫(xiě)一個(gè)proto文件,如下所示:
syntax = "proto3";
import "google/protobuf/timestamp.proto";
package test;

message  BeaconDatas
{google.protobuf.Timestamp dataTime = 1;        //數(shù)據(jù)時(shí)間
    int32 ss = 2;            						//信標(biāo)基礎(chǔ)信息
}

  1. 供C++使用,則需要將其轉(zhuǎn)換;提供一個(gè)轉(zhuǎn)換的bat腳本如下:(含中文路徑的需要加雙引號(hào))
    在這里插入圖片描述

需要注意三部分:

  1. protoc.exe為絕對(duì)磁盤(pán)路徑
  2. –cpp_out=D:\protocol 為指定輸出路徑
  3. test.proto為需要轉(zhuǎn)換的文件
  4. -I選項(xiàng)為指定搜索路徑,注意,這個(gè)選項(xiàng)可以使用多次,指定多個(gè)搜索路徑;我這里指定了當(dāng)前路徑,同時(shí)我用到了google.protobuf.Timestamp,所以我又指出了它的include文件夾;
  1. 最終轉(zhuǎn)換生成了test.pb.h 和test.pb.cc兩個(gè)文件;
    在這里插入圖片描述
六、測(cè)試demo
  1. 編寫(xiě)如下代碼:
#include#include "test.pb.h"
int main()
{test::BeaconDatas aaa;
    aaa.set_ss(123);
    std::cout<< "ss="<< aaa.ss()<< std::endl;
    std::cout<< "Hello World!\n";
    getchar();
}

  1. 測(cè)試項(xiàng)目做如下改動(dòng):
    在這里插入圖片描述
    在這里插入圖片描述

在這里插入圖片描述

  1. 運(yùn)行效果:

在這里插入圖片描述

七、protobuf拓展知識(shí)點(diǎn)
  1. 關(guān)鍵字
  1. required關(guān)鍵字:該規(guī)則規(guī)定,消息體中該字段的值是必須要設(shè)置的。
  2. optional關(guān)鍵字:消息體中該規(guī)則的字段的值可以存在,也可以為空,optional的字段可以根據(jù)defalut設(shè)置默認(rèn)值。
  3. repeated關(guān)鍵字:消息體中該規(guī)則字段可以存在多個(gè)(包括0個(gè))。
  1. 命名空間

例如proto文件中,“package test;”,轉(zhuǎn)換以后會(huì)生成命名空間test;
如果是“package test.newtest”等有點(diǎn)的情況,轉(zhuǎn)換以后會(huì)生成命名空間test::newtest;

  1. 序列化與反序列化

SerializeToString、ParseFromString等函數(shù);

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


分享題目:2022-10-22下載安裝編譯使用Google-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://weahome.cn/article/gijis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部