Windows 下 protocol buffer 安裝教程

配置環境Windows10 ,IDE是VS2017企業版

下載protocol buffer鏈接

github下載:源碼獲取
github下載:壓縮包獲取
cpp3.8.0版本:提取碼:09v5

前提條件

安裝cmake:教程連接,不保證正確

使用cmake創建sln文件

打開cmake,路徑cmake->bin
在這裏插入圖片描述
在這裏插入圖片描述

1.是cmake文件位置,在protobuf目錄下找,根據圖片上的路徑查找就行C++及之前的路徑是我的路徑,不用管
2.1cmake文件夾下的build,你生成的sln工程會放在裏面,當然你可以自己嘗試着改變它的位置。
3.點擊2次,不報錯就沒關係,報錯了自行查找,畢竟我長得帥(嘿嘿嘿)
4.完成3後點擊1次,會在build目錄下生成很多文件,打開其中的protobuf.sln文件

生成lib

打開protobuf.sln文件後操作
在這裏插入圖片描述

右鍵點擊生成,兩個文件都需要生成,生成以後打開
在這裏插入圖片描述
如果你是release生成的,那麼這裏會出現release文件夾,選中其中的這兩個文件
在這裏插入圖片描述
我全部生成了所以文件比較多,你生成我指出的那兩個文件,就只會出現現在指出的文件
將這兩個文件複製到你的vs工程下(可以直接在包含外部鏈接庫時選擇,不過我裝protobuf錯太多了,就用的這個方法),工程是自己建的
在這裏插入圖片描述
新建一個文件夾(名字自取),將上面兩個文件copy到裏面

編寫一個.proto 文件

syntax = "proto2"; 
option optimize_for= LITE_RUNTIME; 
package dong;
message PersonInfo { 
	required string name = 1; 
	required uint32 age = 2; 
	required uint32 phone_num = 3;
}

第二行意義是什麼自行百度(我也不太明白)

生成.h文件和.cc文件

在這裏插入圖片描述
在你的.proto目錄打開cmd

// $SRC_DIR 表示.proto文件所在目錄;
// cpp_out 表示當前用於C++語言;
// $DST_DIR 表示編譯生成文件的路徑;
//filename = test.proto(你的文件名)

protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/filename

我輸入的指令:

protoc -I=./ --cpp_out=../src ./test.proto
  • -I 代表當前路徑
  • ./ 代表當前文件夾
  • –cpp_out代表輸出文件位c++,可替換爲–java_out,–python_out
  • . ./src代表上一級目錄的src文件夾,兩個 . 之間沒有空格
  • ./test.proto是你上一步編寫的文件

輸入指令按下回車後會在你的指定輸出位置生成一個.cc文件和一個.h文件
在這裏插入圖片描述
將這兩個文件copy到vs工程下
在這裏插入圖片描述

鏈接lib(完全沒理解,不過不影響配置,嘿嘿)

在這裏插入圖片描述
右鍵屬性進入下一個界面
在這裏插入圖片描述
在這裏插入圖片描述
選擇下載的protobuf裏的src,可以根據圖片中路徑來選擇,C++及之前的路徑是我的路徑,不用管
在這裏插入圖片描述
聽說這個可以不用管,只需要配置爲相同的即可,不過我的是報錯,改過以後代碼成功運行
在這裏插入圖片描述
在這裏插入圖片描述
選擇文件看lib,sln生成的lib
在這裏插入圖片描述
添加libprotobufd.lib點擊確定即可

測試與結果

測試代碼:

#include<iostream>
#include<fstream>
#include "test.pb.h"
using namespace std;
int main() {
	dong::PersonInfo Person1;
	cout << &Person1 << endl;
	Person1.set_name("yalisd");
	Person1.set_age(5);
	fstream out("../bin", ios::out | ios::trunc | ios::binary);
	cout << Person1.age() << endl;
	cout << Person1.name() << endl;
	system("pause");
}

測試結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章