【发布时间】:2017-06-17 06:44:49
【问题描述】:
我目前正在尝试在非 bazel 项目中使用 Tensorflow 的共享库,因此我使用 bazel 从 tensorflow 创建了一个 .so 文件。
但是当我启动一个同时使用 Opencv 和 Tensorflow 的 c++ 程序时,它使我出现以下错误:
[libprotobuf FATAL external/protobuf/src/google/protobuf/stubs/common.cc:78] 该程序是针对 Protocol Buffer 运行时库的 2.6.1 版本编译的,与安装的版本(3.1 .0)。联系程序作者获取更新。如果您自己编译程序,请确保您的标头来自与链接时库相同版本的 Protocol Buffers。 (“/build/mir-pkdHET/mir-0.21.0+16.04.20160330/obj-x86_64-linux-gnu/src/protobuf/mir_protobuf.pb.cc”中的版本验证失败。) 在抛出 'google::protobuf::FatalException' 的实例后调用终止
what():该程序是针对 Protocol Buffer 运行时库的 2.6.1 版本编译的,该版本与已安装的版本 (3.1.0) 不兼容。联系程序作者获取更新。如果您自己编译程序,请确保您的标头来自与链接时库相同版本的 Protocol Buffers。 (“/build/mir-pkdHET/mir-0.21.0+16.04.20160330/obj-x86_64-linux-gnu/src/protobuf/mir_protobuf.pb.cc”中的版本验证失败。) 放弃(核心转储)
你能帮帮我吗?
谢谢
【问题讨论】:
-
那条消息到底有什么不清楚的地方?
-
问题是即使我尝试安装 3.1.0 版本我仍然得到同样的错误
-
此程序是针对 Protocol Buffer 运行时库的 2.6.1 版本编译的,该版本与已安装的版本 (3.1.0) 不兼容。请联系程序作者以获取更新。您是否使用 protobuf 3.1.0 重新编译了库??
-
是的,我做到了,但我仍然遇到同样的错误
-
我遇到了类似的问题。我必须将 protobuf 静态链接到我的一个共享库中。如果您
nm -D任一共享库,您将看到 Protobuf 的冲突符号。祝你好运!这对我来说超级痛苦
标签: c++ opencv tensorflow protocol-buffers