protobuf使用版本问题

匿名 (未验证) 提交于 2019-12-03 00:22:01

在使用protobuf编译后的.pb.h和.pb.cc文件时,报错

#error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers.  Please #error regenerate this file with a newer version of protoc.
.pb.h:731: error: 'kEmptyString' is not a member of 'google::

确定应该是protobuf版本的问题。

因为第一次使用protobuf,不晓得自己Ubuntu上已经存在了protobuf。

命令which protoc 可以查看默认选用protoc的路径

命令 protoc --version 可以查看当前protoc版本

使用命令:

root@hi3531:/home/work/protobuff/pc_protobuf/bin# protoc --version

libprotoc 2.4.1

root@hi3531:/home/work/protobuff/pc_protobuf/bin# ./protoc --version

libprotoc 2.6.1

可以看出,我自己编译的protobuf版本是2.6.1 ,而编译程序的时候使用了默认的2.4.1版本

protoc --proto_path=/protobuf --cpp_out=/protobuf /protobuf/addressbook.proto  
改为/home/work/protobuf/pc_protobuf/bin/protoc --proto_path=/protobuf --cpp_out=/protobuf /protobuf/addressbook.proto 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!