优质的参考链接:
Win10 下 ProtoBuf 安装编译以及在 C++ 中的用法
详解 Google Protocol Buffer 协议 优质的付费资源
==================================================
以下内容仅作为笔记,3.10.0版本,出现一个问题,C++的string,深拷贝出问题。所以改成3.14.0版本,就不再出现这个问题。
下载
源码、编译好的,地址:https://github.com/protocolbuffers/protobuf/releases?after=v3.11.1
找到需要的版本,打开Assets,下载Windows用的源码:
不想编译的话,可以直接下载 Windows-release版本
我这边因为直接下载的release版本,提示缺少文件:
fatal error C1083: 无法打开包括文件: “google/protobuf/port_def.inc”: No such file or directory
里面确实也没有这个文件,所以还得下载源码编译。因为源码中有src文件。
编译步骤:
操作系统:WIN10 64位
编译工具:VS 2017
在 Win 上编译需要用到 CMake :https://cmake.org/download/, 官网不好下载,
推荐一个连接,最后附有百度云:https://blog.youkuaiyun.com/qq_34732729/article/details/104389146
1、解压源码到任意路径下 <path>\protobuf-3.10.0下
2、到官网(或国内下载站)下载 CMake,或上面的链接中下载,解压,bin文件夹下,cmake.exe 直接运行就是了
3、CMake 生成 VS 2017工程,到生成的目录下,找到 protobuf.sln ,用VS2017打开
4、设置好release和debug,及对应的位数。在需要的项目上,右键->生成
结果->
5、新建项目,将编译好的lib dll 以及(源码中src->google, 放到include中), 都拷贝到项目中。
6、编译 *.proto文件,生成对应的.h和.cc文件
比如,将msg.proto文件,放在bin目录下,进入cmd, 直接输入,即可编译通过。路劲根据自己的情况进行修改。
protoc -I=E:/HTproto/bin --cpp_out=E:/HTproto/bin E:/HTproto/bin/msg.proto
7、然后将.h和.cc文件,也放入main.cpp目录下。同时加入到工程中。
测试代码:
#include<iostream>
#include<fstream>
#include<string>
#include"msg.pb.h"
using namespace std;
int main()
{
GOOGLE_PROTOBUF_VERIFY_VERSION;
proto::Msg msg;
return 0;
}
出现的问题:
link2019 链接错误,是因为:没有把*.cc *.h文件加入到工程中。