Ubuntu中libprotobuf版本冲突的解决方案
Posted 米罗西
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu中libprotobuf版本冲突的解决方案相关的知识,希望对你有一定的参考价值。
先说解决方法:
因为我出现这个比较奇特,我再下面环境中的第一个项目有这个问题,但是不知道怎么瞎折腾就搞定了,不报这个异常了
不论是Qt Creator直接运行Debug或者Release都没问题
但是我后续建立的项目始终有这个问题,经过几天的折腾发现新项目如果使用sudo命令启动程序就不会报异常,所以目前我的Qt Creator也用sudo命令启动。
下面的方法我都没有尝试过,但是应该最贴近根本原因的。
至于为什么同一个Qt Creator创建并打开的第一个项目正常,但是后续的就异常,目前还不清楚,后续调查清楚了再来更新。
先介绍一下环境:
Ubuntu 16.04
Qt 5.10
Caffe封装的人脸检测库
错误原因:
Caffe中用到的libprotobuf版本与Qt中引用的版本冲突
具体异常如下:
Debugging starts
[libprotobuf FATAL google/protobuf/stubs/common.cc:78] This program was compiled against version 2.6.1 of the Protocol Buffer runtime library, which is not compatible with the installed version (3.3.0). Contact the program author for an update. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "/build/mir-O8_xaj/mir-0.26.3+16.04.20170605/obj-x86_64-linux-gnu/src/protobuf/mir_protobuf.pb.cc".)
terminate called after throwing an instance of \'google::protobuf::FatalException\'
what(): This program was compiled against version 2.6.1 of the Protocol Buffer runtime library, which is not compatible with the installed version (3.3.0). Contact the program author for an update. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "/build/mir-O8_xaj/mir-0.26.3+16.04.20170605/obj-x86_64-linux-gnu/src/protobuf/mir_protobuf.pb.cc".)
程序异常堆栈如下:
网络上找到的靠谱资源:
c++ - Protobuf version conflicts with Qt - Stack Overflow
Qt for Linux/X11 - Building from Source | Qt 5.11
.
以上是关于Ubuntu中libprotobuf版本冲突的解决方案的主要内容,如果未能解决你的问题,请参考以下文章
caffe2 no gpu support 错误:libprotobuf.so.14 [进行中]
如何在 conda 环境中用克隆的 GitHub 版本替换 libprotobuf 的 conda 包
问题解决:libprotobuf.so.28: cannot open shared object file