Protobuf是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储。当你安装过一个更高版本的protobuf但又可能需要一个2.6.1的版本,当你重新编译时如果报了像下面图片中的错误,那就是说明protobuf版本冲突了。
首先我们要查看一下已安装的protobuf:
whereis protoc #查看那些路径下安装了protobuf
which protoc #查看默认选用的protobuf
protoc --version #查看当前默认的protobuf的版本
sudo protoc --version #查看系统的protobuf的版本
如果通过这几个命令也查到只有一个安装路径而且版本也是你最新安装的版本,这就说明有一个可能就是你在最新的版本安装后直接就进行make编译了:
make根据Makefile编译源代码,连接,生成目标文件,可执行文件。
make clean仅仅是清除之前编译的可执行文件及配置文件。
所以在编译前要make clean一下,清除掉之前更高版本生成的可执行文件在进行make编译。