背景
protobuf 是一種跨平臺(tái)的序列化結(jié)構(gòu)數(shù)據(jù)的方法,可用于網(wǎng)絡(luò)數(shù)據(jù)傳輸及存儲(chǔ)。
本文對使用 vs2019 編譯 protobuf 庫文件進(jìn)行說明,相關(guān)代碼及安裝文件均來自官網(wǎng)下載。
VS2019 編譯 protobuf
①.生成 sln 工程文件
打開 cmake ,然后選擇 protobuf-v3.19.4 目錄中的 cmake 文件夾
單擊 configure 按鈕,在打開界面中配置 生成器及平臺(tái)
取消 protobuf_BUILD_TESTS 選項(xiàng),若要生成動(dòng)態(tài)庫需要選擇 protobuf_BUILD_SHARED_LIBS
單擊 Generate 按鈕生成 sln 工程目錄
②.編譯 sln 工程
用 VS2019 打開生成的 sln 項(xiàng)目文件
右鍵解決方案分別生成 Debug 和 Release 版的庫文件
③.整理生成的結(jié)果
新建 bin 文件夾,把生成的 libprotobuf.dll、libprotobuf-lite.dll、libprotoc.dll 三個(gè)動(dòng)態(tài)庫文件放入文件夾
新建 lib 文件夾,把生成的 libprotobuf.lib、libprotobuf-lite.lib、libprotoc.lib三個(gè)庫文件放入文件夾
新建 include 文件夾,把 protobuf-v3.19.4 目錄中的 src\google 文件夾拷貝放入
新建 tools 文件夾,把 protoc.exe、libprotobuf.dll、libprotoc.dll 三個(gè)文件放入,用于編譯生成 c++ 文件
最終生成的完整目錄如下,在使用時(shí)把 protobuf-x86 放在對應(yīng)的工程路徑下即可
VS2019 使用 protobuf
①.項(xiàng)目屬性配置
在附加包含目錄中配置 include 路徑
在附加庫目錄中配置 lib 路徑
在附加依賴項(xiàng)中配置 libprotobufd.lib
②.編寫測試用的 .proto 文件
syntax = "proto3";
package protoTest;
message DemoMsg
{
string name = 1;
int32 id = 2;
}
③.生成對應(yīng)的 C++ 文件
為方便使用可在同目錄編寫一個(gè) generate.bat 文件
cd /d %~dp0
..\protobuf-x86\tools\protoc.exe *.proto --cpp_out=.
pause
雙擊運(yùn)行即可生成 .h 和 .cc 文件
把生成的文件添加到項(xiàng)目中,并且在生成的 .h 文件最開頭添加 #define PROTOBUF_USE_DLLS,否則編譯會(huì)出錯(cuò)
④.測試代碼文章來源:http://www.zghlxwxcb.cn/news/detail-478595.html
#include <iostream>
#include "proto/protoDemo.pb.h"
int main()
{
protoTest::DemoMsg msg;
msg.set_id(1);
msg.set_name("hello");
std::cout << msg.SerializePartialAsString() << std::endl;
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-478595.html
到了這里,關(guān)于vs2019 中編譯和使用 protobuf 庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!