备忘:C++ protobuf 在windows | Linux下编译protobuf.a | protobuf.dll 编译环境MSVC | QT MinGW

C++ protobuf 在windows | Linux下编译protobuf.a | protobuf.dll 编译环境MSVC | QT Mingw64


准备工作

  • 下载protobuf(https://github.com/protocolbuffers/protobuf/) Release (如:protobuf-cpp-3.6.1.zip)
  • Linux 上安装相应的C++运行时、库、Cmake、make,参考protobuf网站相应文档工具
  • Window上安装VS2017、QT5.12、CMake等

Linux 下编译protobuf 参考git网站文档
https://github.com/protocolbuffers/protobuf/blob/master/src/README.md
按照步骤来即可。

Windows 下MSVC+protobuf

  • 打开控制台,目录跳转至:protobuf-cpp-3.6.1\protobuf-3.6.1\cmake
  • 执行CMake(protobuf-cpp-3.6.1\protobuf-3.6.1\cmake>cmake CMakeLists.txt),执行完后,CMake会根据配置生成对应的MSVC解决方案(protobuf.sln)
  • 使用VS打开protobuf.sln编译生成使用即可

Windows 下 QT、CodeBlocks等使用mingw编译的IDE

  • 打开CMake GUI 源目录:protobuf-cpp-3.6.1\protobuf-3.6.1\cmake 目标目录:protobuf-cpp-3.6.1\protobuf-3.6.1\cmake\build
  • CMake GUI 生成Makefile 选择mingw MakeFile
  • CMake GUI 生成后,勾选去掉protobuf_MSVC_STATIC_RUNTIME(PS:重要,否则编译出来的protobuf各种问题在QT等IDE上
    备忘:C++ protobuf 在windows | Linux下编译protobuf.a | protobuf.dll 编译环境MSVC | QT MinGW
  • 点击Generate
  • 进入build目录:\protobuf-cpp-3.6.1\protobuf-3.6.1\cmake\builld
  • 运行CMD,运行mingw32-make
  • 编译完成后,运行mingw32-make install安装到C盘
  • 得到libprotobuf.a,编译引入QT或 CodeBlock即可

前前后后折腾了些日子