Ubuntu上的Protobuf没有编译

时间:2016-06-23 05:51:10

标签: c++ ubuntu protocol-buffers

我无法在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

1 个答案:

答案 0 :(得分:1)

这是protobuf的常见问题。您需要仔细检查您正在使用的protoc以及您正在使用的标头,如果您安装了2个版本,则尤其如此! 在头文件.pb.h中,您将找到使用的protobuf版本:

#if GOOGLE_PROTOBUF_VERSION < 2006000

检查这是否应该是您应该使用的protoc版本。 之后检查您使用的protobuf标头是什么。 如果protoc版本与protobuf标题之间没有相关性,则会显示消息。