之前用的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_INSTALL_PREFIX
要选中一个你自己想要的文件夹,这样后面编译INSTALL
项目才不至于整个硬盘找文件。因为我现在不需要单元测试项目,所以我取消了BUILD_TEST
。之后就是生成vs项目了,需要大概几秒钟吧。
编译protobuf
找到刚刚的build目录,然后双击protobuf.sln
打开VS解决方案,在Debug和Release模式下各编译一次ALL_BUILD,根据CPU的性能可能要花一些时间在这步。然后你就可以在protobuf.sln
同目录下看到Debug和Release目录下的.lib文件,那就是我们要的。
当然如果怕麻烦,可以直接在Debug和Release模式下各编译一次INSTALL项目,这样上文提到的CMAKE_INSTALL_PREFIX
目录下就会直接出现我们要的所有东西。
我的CMAKE_INSTALL_PREFIX
是F:\cpp-WorkSpace\install
,这个主要取决于刚刚的设置,如果这一步你晕头转向了,就去重新读上一节。
编写protobuf并编译
随便瞎写了一个测试文件,命名为test.proto。
1 | syntax="proto3"; |
用protoc编译一下,命令如下
1 | .\protoc.exe test.proto --cpp_out=./output/cpp |
这样输出目录就有了test.pb.h
和test.pb.cc
,后面我们会用到。
创建客户端项目
To be continued…