在VS中配置protobuf自定义生成工具

时间:2024-04-13 11:46:19

首先,在vs中建立一个c++项目,这里项目名称为test,将protobuf相关的头文件库文件配置好,这里采用的项目路径设置如下所示:
在VS中配置protobuf自定义生成工具
test\test\proto 目录存放*.proto文件
test\test\protocpp 目录存放生成的*.pb.h和*.pb.cc文件
test\lib\include 目录存放protobuf的头文件
test\lib\lib 目录存放protobuf的lib文件
test\tools 目录存放protoc.exe

根据目录设置,配置好test项目的附加包含目录和附加依赖项。
附加包含目录: $(SolutionDir)lib\include
附加库目录: $(SolutionDir)lib\lib
附加依赖项(Debug): libprotobufd.lib
如果是使用的动态库版本的protobuf, 则添加:
预处理器定义: PROTOBUF_USE_DLLS

设置好工程后,添加一个proto文件到test\test\proto目录下:
在VS中配置protobuf自定义生成工具
右键点击myproto.proto文件,点击属性,将项类型设置为自定义生成工具:
在VS中配置protobuf自定义生成工具
点击确定后,打开test项目的属性,左边出现了自定义生成工具的选项:
在VS中配置protobuf自定义生成工具
在VS中配置protobuf自定义生成工具
修改以下属性:
命令行:$(SolutionDir)tools\protoc.exe -I .\proto %(Filename).proto --cpp_out=$(ProjectDir)protocpp
说明: protoc %(Filename).proto
输出: $(ProjectDir)protocpp%(Filename).pb.cc
向项类型添加输出: 选择 C/C++ 编译器
在VS中配置protobuf自定义生成工具
编写刚刚添加的myproto.proto文件:
在VS中配置protobuf自定义生成工具
进行编译:
在VS中配置protobuf自定义生成工具
可以看到已经生成了myproto.pb.cc文件了,此时,我们也无需将其添加到项目树内部, 直接使用它的头文件即可:
在VS中配置protobuf自定义生成工具

Note:新添加proto文件也需要进行选择自定义生成工具的操作