windows编译生成protobuf库(使用minGW编译)

来源:互联网 发布:温暖的句子 知乎 编辑:程序博客网 时间:2024/06/01 15:19
       我的前一篇博客写了windows10用VS编译protobuf库,成功生成了三个必须protobuf的静态库,但最后发现在Qt中链接protobuf库时总出现问题,不管Qt是MSVC还是minGW版本。
       后来经过研究用minGW编译生成的protobuf静态库可以在minGW版本的Qt中使用。大致过程总结如下:

首先需要准备的资源:1、CMake;2、minGW;3、protobuf源码;4、Qt Creator (minGW版)

       1、CMake的安装就不说了,网上很多教程;
       2、minGW: 进官网https://sourceforge.net/projects/mingw/files/点击“Download mingw-get-setup.exe (86.5 kB)
即可进入下载界面,下载的是最新版;下载完双击.exe文件安装,过程中记得选择安装MSYS包!安装完成后,记得将c:\minGW\bin和c:\minGW\msys\1.0\bin添加到系统变量里。
       3、protobuf源码在github上下载:https://github.com/google/protobuf  最好下载release版本,不然的话要自己安装gmock。
       4、Qt Creator在Qt官网下载:要先注册一个账户,然后下载,进入官网后进入自己的账户,然后点击“DOWLOAD”可以选择相应的版本下载。

其次编译生成静态库:
       1、用CMake GUI,选择MSYS Makefiles Generator编译;
       2、运行MSYS脚本(在c:\minGW\msys\msys.bat),cd 到protobuf/cmake/build目录,运行命令make.exe,执行完成后即生成了三个protobuf静态库libprotobuf.a、libprotobuf-lite.a、libprotoc.a和protoc.exe,在protobuf\cmake\build目录下;
       3、在Qt Creator工程中添加外部依赖库(把生成的三个protobuf静态库都填进去),然后容用Qt release编译工程可以通过!

这是我探索了好几天才找到的方法,已验证过,如果有疑问可以评论里咨询我!