Windows下VC++项目中Protobuf的标准正确使用方法
在VC++中使用Protobuf的问题解答
1. 依赖缺失是否正常,是否需要手动补充?
- 这种依赖缺失是正常现象:新版Protobuf(3.15及以后版本)开始依赖Abseil库,直接从GitHub下载的Protobuf源码包不包含Abseil的代码,因此会出现
absl/strings/string_view.h这类头文件缺失的情况;而protobuf.lib是编译后的链接库,源码包里没有预编译版本,所以也会缺失。 - 不推荐手动补充依赖:手动下载Abseil容易出现版本不兼容问题,后续还可能遇到更多依赖缺失,反而增加复杂度。
2. 这是常规使用方式吗?Windows VC++环境下有无更简便的自动化方法?
- 你当前的使用方式不是常规流程,手动处理源码和依赖属于比较繁琐的方式。Windows VC++环境下有两种更简便的自动化方案:
- 使用NuGet包管理器:在VS中右键项目→「管理NuGet程序包」,搜索
Google.Protobuf并安装。该包会自动配置项目的包含目录、链接库,甚至集成protoc.exe的调用,无需手动下载源码、编译或处理依赖。 - 使用预编译二进制包:下载对应VS版本的Protobuf预编译包(比如带有
vc142/vc143标记的包),解压后在VC++项目中配置:- 附加包含目录:指向解压后的
include文件夹 - 附加库目录:指向解压后的
lib文件夹 - 链接器输入:添加
protobuf.lib(Debug模式用protobufd.lib)
预编译包已经包含了Abseil的依赖,无需额外处理。
- 附加包含目录:指向解压后的
- 使用NuGet包管理器:在VS中右键项目→「管理NuGet程序包」,搜索
内容的提问来源于stack exchange,提问作者Rackover
相关产品推荐
相关产品推荐

