我无法在ubuntu上使用protobuf进行编译。这是错误:
错误:#error此文件是由较新版本的protoc生成的 #error这个文件是由较新版本的protoc生成的 ^ build / x86_64 / gen / rtbkit / plugins / exchange / realtime-bidding.pb.h:13:2:错误:#error与Protocol Buffer标头不兼容。请更新 #error与您的协议缓冲区标头不兼容。请更新 ^ build / x86_64 / gen / rtbkit / plugins / exchange / realtime-bidding.pb.h:14:2:错误:#error你的标题。 #error你的标题。 ^ 在build / x86_64 / gen / rtbkit / plugins / exchange / realtime- bidding.pb.cc:5:0中包含的文件中: build / x86_64 / gen / rtbkit / plugins / exchange / realtime-bidding.pb.h:26:55:致命错误:google / protobuf / generated_enum_reflection.h:没有这样的文件或目录 #包括 ^
我删除了它,它仍显示protobuf 2.5
答案 0 :(得分:1)
这是protobuf的常见问题。您需要仔细检查您正在使用的protoc
以及您正在使用的标头,如果您安装了2个版本,则尤其如此!
在头文件.pb.h
中,您将找到使用的protobuf版本:
#if GOOGLE_PROTOBUF_VERSION < 2006000
检查这是否应该是您应该使用的protoc版本。 之后检查您使用的protobuf标头是什么。 如果protoc版本与protobuf标题之间没有相关性,则会显示消息。