protobuf在windows環境下的使用


  在學習網絡編程時,師兄給我提了個要求,讓我用protobuf把字符串和圖片打包發送,初次接觸protobuf走了很多彎路,現在終於能夠簡單的使用,記錄一下過程,希望能給遇到同樣問題的同學一點幫助。
  關於protobuf我就不多介紹了(我了解的也是皮毛,還在繼續學習,哈哈哈哈哈~),使用環境:win10+VS2013,protobuf版本:2.6.1,文件已經上傳到百度雲,
鏈接:https://pan.baidu.com/s/1tAy2EN1kIkZFd4rlPFWqQQ
提取碼:kwmc

  下載解壓后可以看到如下文件目錄:

在這里插入圖片描述  打開vsprojects文件夾,可以看到protobuf.sin,用VS打開。
在這里插入圖片描述  在VS打開后有如下目錄,這里我們只需要生成libprotobuf,libprotoc即可。
在這里插入圖片描述
  在做完這些之后,在Debug目錄下就有了我們想要的protoc.exe,以及一些 .lib文件。現在我們就可以來嘗試使用protobuf了,下面是使用步驟:

1.定義自己的proto
  打開…\protobuf-2.6.1\examples,可以看到一些已有的例子,在此路徑下創建 protobuf-test.proto,內容如下:

package tutorial;
 
message Test {
  required string testName = 1;
  required int32 testAge = 2;
  optional string testEmail = 3;
 
}

2.然后用cmd運行protoc.exe生成我們的目標語言格式 C++
 命令如下:protoc -I=E:\protobuf-2.6.1\examples --cpp_out=E:\protobuf-2.6.1\examples E:\protobuf-2.6.1\examples\protobuf-test.proto
在這里插入圖片描述  在…\examples 路徑下就生成了如下文件:
在這里插入圖片描述3.使用
  用vs2013(其他版本也行)創建一個空項目,選擇工程屬性並配置:
在這里插入圖片描述

  點擊 配置屬性 下的 C/C++ 的 常規,右邊附加包含目錄,導入這個路徑E:\protobuf-2.6.1\src(根據自己文件存放路徑來決定)
在這里插入圖片描述  點擊鏈接器 的常規,右邊的附加庫目錄,導入這個路徑E:\protobuf-2.6.1\vsprojects\Debug
在這里插入圖片描述

  把之前生成的protobuf-test.pb.h和protobuf-test.pb.cc,復制到項目中:
在這里插入圖片描述
  寫入如下代碼:

#include <iostream>
#include "protobuf-test.pb.h"
#pragma comment(lib, "libprotobuf.lib")
#pragma comment(lib, "libprotoc.lib")
using namespace std;
using namespace tutorial;

int main()
{
	Test mas1;

	mas1.set_testname("CSDN");
	mas1.set_testage(10);

	cout << mas1.testname() << endl;
	cout << mas1.testage() << endl;


	system("pause");
	return 0;
}

  運行,報如下錯誤:
在這里插入圖片描述  解決方法如下:
右鍵點擊工程 -> 屬性 -> C/C++ -> 常規 -> SDL檢查
改為:否 (/sdl-)
  或者:
右鍵點擊工程 -> 屬性 -> C/C++ ->預處理器
添加宏定義 _SCL_SECURE_NO_WARNINGS

  編譯成功,結果如下:
在這里插入圖片描述

  protobuf的更多使用等我用熟后再更新~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM