Mac QT5.11 C++ 使用Protobuf
最近在弄一个游戏后台,服务之间使用protobuf进行通信,但模拟客户端使用json与网关通信,为了统一格式模拟客户端使用protobuf。当然C++使用Protobuf比较麻烦,需要自行编译源码然后加入到项目中。
第一步,从github下载最新protobuf源码进行编译,地址:https://github.com/google/protobuf
下载后
1. 进入文件夹 cd protobuf
2. 这一步好像可以忽略 ./autogen.sh
3. 生成makefile ./configure
4. 开始编译 make
编译耗费10多分钟左右
5. 安装 make install
参考:
https://www.cnblogs.com/cyzhou/p/6860262.html
安装结束后会自动给你系统安上需要的东西,新建一个proto文件,使用protoc进行编译。
protoc -I=./ --cpp_out=./ common.proto
生成了pb.h和pb.cc的文件,将其放进Qt项目中,你会发现找不到google这个文件夹
从protobuf中src文件夹找到google文件夹
将其放进项目文件中并在项目 xx.pro 中添加一行
INCLUDEPATH += $$PWD/source/
这个Source是放google的地方,这样就不会提示找不到google文件了
再次运行依旧不行
这是由于少.a库的原因,库存放在protobuf/src/.libs中,这是个隐藏文件 ls -a即可看到,将其复制到项目之中,我是放在项目中source文件里。
然后使用QT添加库功能,选择外部库,将libprotobuf.a libprotoc.a添加进去。
再次运行程序就没有错误了。