更新protoc版本
如果不是重新生成.pb文件,注意protoc版本要统一
1. 查看生成.pb文件的protoc版本(编译环境) protoc --version 2. 比如原始编译版本是3.12.3,在官网下载对应版本https://pypi.org/project/protobuf/3. 按照如下命令安装 cd protobuf-xxx ./autogen.sh ./configure make // 耗时较长 make check // 非必须 sudo make install sudo ldconfig4. 其他问题
如果更新的protoc版本和头文件编译版本不匹配,可能编译会报如下错误
xxx.pb.h: #error this file was generated by an older version of protoc …#error incompatible with your Protocol Buffer headers.#error please regenerate this file with a newer version of protoc
解决办法
卸载protoc重新安装指定版本,指定版本下载安装上面介绍过了
protobuf的卸载sudo apt-get remove libprotobuf-devwhich protoc // 查看可执行文件路径sudo rm /usr/local/bin/protoc // 删执行文件 //(也可能是/usr/bin/protoc)sudo rm -rf /usr/local/include/google //头文件sudo rm -rf /usr/local/lib/libproto* //库文件
sudo ldconfig,动态链接库为系统所共享,即应用程序能正确找到相关链接库文件。不执行这步可能报错:
protoc: error while loading shared libraries: libprotoc.so.23: cannot open shared object file: no such file or directory参考文章