在使用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 --versionlibprotoc 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
文章来源: protobuf使用版本问题