当前位置: 首页 > 知识库问答 >
问题:

该程序是根据协议缓冲区运行库的2.6.1版本编译的,该版本与安装的版本(3.5.0)不兼容

顾烨磊
2023-03-14

当我将可执行文件和库依赖项复制到另一台计算机并运行该程序时,我会出现以下错误:

该程序是根据协议缓冲区运行库的2.6.1版本编译的,该版本与安装的版本(3.5.0)不兼容。联系程序作者以获取更新。如果您自己编译了该程序,请确保您的头文件来自与链接时间库相同版本的协议缓冲区。

这个错误只发生在新计算机中。我可以在我的电脑上运行我的程序没有任何问题。

我试着用ldd-dobjdump-p引擎| grep NEEDED检查哪些库中有protobuf,但我找不到它们。

我的程序使用:opencv和Cuda、boost、tensorflow、tensorRT。

这两款电脑的操作系统都是Ubuntu 16.04.6 LTS。

我怎样才能找到哪一部分与冲突有关?

我试图通过添加-DBUILD_protobuf=OFF-DPROTOBUF_UPDATE_FILES=ON-DPROTOBUF_INCLUDE_DIR=/usr/INCLUDE-DPROTOBUF_LIBRARY=/usr/lib/x86_64-linux-gnu/libprotobuf来重新编译没有protobuf的opencv。所以

这并没有解决问题。

共有1个答案

洪彬
2023-03-14

您有两个不同的版本libprotobuf,其中一个安装在动态库的/usr/local/lib/中。

但是,当您构建程序时,会包含其他版本的libprotobuf

您可以重新安装libprotobuf来解决这个问题。

如果从源代码安装libprotobuf,请确保在上添加了标志-Dprotobuf_BUILD_SHARED_LIBS=ON。

 类似资料:
  • 我安装或工具在我的mac与。现在我尝试在https://developers.google.com/optimization/routing/vrp#solution.上运行谷歌给出的示例代码 从ortools导入程序崩溃,并显示以下消息: [libprotobuf FATAL google/protobuf/stubs/common.cc:86]此程序是根据协议缓冲区运行库的3.5.1版本编译的

  • 我试图安装Caffe库,但我有一个编译问题,由于一个错误的原型版本安装在我的系统。 我在论坛上遵循了许多提议的方法,我认为在这篇帖子中讨论了最类似的问题。 在caffe.pb.h中控件是: 但是在我的系统标头(/usr/include/google/cript buf/stubs/Common. h)中: 命令protoc--version从终端返回libprotoc 3.2.0。 所以我安装了3

  • 我不小心安装了3.0.0版,我的大多数文件自然产生了大量错误。现在我想把它带回2.6.1。我已经下载了2.6.1并安装了,但是当我做时,它仍然显示,这是错误的。 有办法将版本设置为2.6.1还是有办法卸载3.0.0?

  • 我试图在AWS云中运行docker镜像,因此在本地,用jdk-11.0.1编译应用程序,并编写如下docker文件;请注意,我没有在AWS ec2实例中安装任何JDK,因为我已经在最终图像中包含了采用OpenJDK/openjdk11:latest image。。 线程“main”java中出现异常。lang.UnsupportedClassVersionError:com/example/dem

  • java应该吗 java版本“1.8.0_251”java(TM)SE运行时环境(构建1.8.0_251-b08)java热点(TM)64位服务器虚拟机(构建25.251-b08,混合模式) 和 javac 1.8.0_181 如果不是同一个版本,有什么问题吗?

  • 它的版本问题是肯定的,因为我在另一个项目中以同样的方式使用它,但在play 2.6中(不确定是否与它有任何关系) 如果我降级elasticmq版本,我会得到以下错误: 异常或错误导致运行中止:java.lang.noClassDeffounderror:akka/http/scaladsl/settingsettingsettingsjava.lang.bootstrapmethoderror:j