Win用CMake编译protobuf

环境

  • Windows 10
  • CMake 3.18.0
  • VS 2019

下载

先去下载protobuf对应的版本 https://github.com/protocolbuffers/protobuf/releases

这里以protobuf-all-3.12.3.zip版本为例。

生成工程

下载解压后,打开CMake,source code项填入protobuf的cmake目录,build the binaries项为成生的工程目录,这个自己填写一个就可以了。最后点Configure生成

生成页面选择vs的版本

生成文件如果报错,将protobuf_BUILD_TESTS勾选去掉,这里没有安装gtest

Configure完成后点Generate生成vs工程

编译

进入我们配置的out目录中,会看到一个ptotobuf.sln文件

用vs打开,编译模式选择Release,右键protoc项目,生成就可以了。

最后在protoc输出目录中,就可以找到我们需要的protoc.exe了

使用

从源码可以看出支持的语言

# C++
protoc.exe --proto_path=./proto --cpp_opt=./cpp ./proto/text.proto

# Java
protoc.exe --proto_path=./proto --java_out=./java ./proto/text.proto

# Python
protoc.exe --proto_path=./proto --python_out=./py ./proto/text.proto

# PHP
protoc.exe --proto_path=./proto --python_out=./php ./proto/text.proto

# Ruby
protoc.exe --proto_path=./proto --ruby_out=./ruby ./proto/text.proto

# C#
protoc.exe --proto_path=./proto --csharp_out=./cs ./proto/text.proto

# Objective C
protoc.exe --proto_path=./proto --objc_out=./objc ./proto/text.proto

# JavaScript 
protoc.exe --proto_path=./proto --js_out=./js ./proto/text.proto
0%