用Visual Studio 2022编译Protobuf

  1. 1. 准备
  2. 2. 生成VS项目
  3. 3. 编译protobuf
  4. 4. 编写protobuf并编译
  5. 5. 创建客户端项目

之前用的MinGW在Win10下编译protobuf,踩了很多坑。现在还是打算换回VS了,毕竟Win10下开发最好用的还是VS,至少用的人多不容易踩坑,就算踩了也能很快搜到怎么解决。

这篇文章主要是记录一下当时是怎么配置环境的,免得后面忘了又要去网络上大找特找攻略。

准备

需要准备的东西不多,首先肯定是protobuf的源码,直接去官方仓库取就行了。写这篇文章的时候,protobuf的最新版本是v3.19.1,我选择下载的是protobuf-cpp-3.19.1.zip,毕竟我只需要c++的源码就行。

Visual Studio我就不说了,换了电脑只能下载到最新的2022社区版。

然后就是用来生成protobuf项目的CMake。下载新版的支持vs2022的CMake。

生成VS项目

解压下载到的压缩包以后,打开CMake-GUI。Where is the source code:那一栏填根目录下的cmake目录。Where to build:随便填一个空的目录就行,我是按照国际惯例创建了一个build目录。填好以后选对应的vs版本点Finish等他加载一下。

cmake-gui

生成之前记得有个很重要的地方要改下,一个是CMAKE_INSTALL_PREFIX要选中一个你自己想要的文件夹,这样后面编译INSTALL项目才不至于整个硬盘找文件。因为我现在不需要单元测试项目,所以我取消了BUILD_TEST。之后就是生成vs项目了,需要大概几秒钟吧。

cmake-config

编译protobuf

找到刚刚的build目录,然后双击protobuf.sln打开VS解决方案,在Debug和Release模式下各编译一次ALL_BUILD,根据CPU的性能可能要花一些时间在这步。然后你就可以在protobuf.sln同目录下看到Debug和Release目录下的.lib文件,那就是我们要的。

当然如果怕麻烦,可以直接在Debug和Release模式下各编译一次INSTALL项目,这样上文提到的CMAKE_INSTALL_PREFIX目录下就会直接出现我们要的所有东西。

install-path

我的CMAKE_INSTALL_PREFIXF:\cpp-WorkSpace\install,这个主要取决于刚刚的设置,如果这一步你晕头转向了,就去重新读上一节。

编写protobuf并编译

随便瞎写了一个测试文件,命名为test.proto。

1
2
3
4
5
6
7
8
syntax="proto3";

package hello;

message UserInfo{
int32 id = 1;
string name = 2;
}

用protoc编译一下,命令如下

1
.\protoc.exe test.proto --cpp_out=./output/cpp

这样输出目录就有了test.pb.htest.pb.cc,后面我们会用到。

创建客户端项目

To be continued…