gpt4 book ai didi

linux - OpenCV 构建错误 : libwebp. 所以未找到

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:32 35 4
gpt4 key购买 nike

我有两台 Arch Linux 机器,其中一台可以编译我的代码,但在我的新机器上出现以下错误:

:-1: warning: libwebp.so.5, needed by /usr/local/lib/libopencv_imgcodecs.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/libopencv_imgcodecs.so:-1: error: undefined reference to `WebPEncodeBGRA'
/usr/local/lib/libopencv_imgcodecs.so:-1: error: undefined reference to `WebPDecodeBGRAInto'
/usr/local/lib/libopencv_imgcodecs.so:-1: error: undefined reference to `WebPEncodeLosslessBGR'
/usr/local/lib/libopencv_imgcodecs.so:-1: error: undefined reference to `WebPDecodeBGRInto'
/usr/local/lib/libopencv_imgcodecs.so:-1: error: undefined reference to `WebPEncodeLosslessBGRA'
/usr/local/lib/libopencv_imgcodecs.so:-1: error: undefined reference to `WebPGetFeaturesInternal'
/usr/local/lib/libopencv_imgcodecs.so:-1: error: undefined reference to `WebPEncodeBGR'
:-1: error: collect2: error: ld returned 1 exit status

我的 .pro 文件如下所示:

#-------------------------------------------------
#
# Project created by QtCreator 2015-11-15T16:30:56
#
#-------------------------------------------------

QT += core gui opengl

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = ColonyCounter
TEMPLATE = app

CONFIG += c++11

INCLUDEPATH += /usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_imgproc

SOURCES += main.cpp\
mainwindow.cpp \
cellcounter.cpp

HEADERS += mainwindow.h \
cellcounter.h

FORMS += mainwindow.ui

DISTFILES += \
to-do.txt

我怎样才能链接图书馆或类似的东西,还没有在网络上找到任何东西就知道了。我检查了我的库,发现我没有 libwep.so.5,但有 libwebp.so.6 和 libwebp.so 和 libwebp.so.2,但我不知道如何修复它,安装 libwebp.so .5 或更改我的 .pro 文件中的某些内容?

最佳答案

看起来您安装的 OpenCV 版本想要链接比您安装的旧版本的 libwebp(特别是包含 libwebp.so.5 的 0.4.4 版本)(可能是 0.5.0-1 版本)。一些选项是:

  1. 将 libwebp 降级到 0.4.4 并忽略 libwebp 0.5.0-1,以避免在未来的升级中恢复原状。这可能不是最佳选择,但它很简单并且可以工作,除非您有其他依赖 0.5.0-1 的包。
  2. 手动下载并构建 0.4.4 版本的 libwebp 并安装在非标准位置。在这种情况下,您需要修改/使用 LD_LIBRARY_PATH 将 opencv 指向那里。这可能是您最简单的最佳选择。
  3. 下载一些更新版本的 OpenCV 源代码并构建它。如果兼容,它将找到并链接到您当前的 libwep.so.6。最新版本的 OpenCV(截至撰写本文时为 3.1.0)是兼容的。此选项是最佳选项,但涉及最多,因为根据您要包含的功能,编译 OpenCV 可能很简单或很痛苦。

现在对您当前标记的解决方案发表评论:强烈不建议从一个 soname 链接到另一个。在许多情况下,它不会编译,但即使编译,您的应用程序也可能表现出任意和不稳定的行为和/或段错误,除非二进制文件完全兼容。但如果它们兼容,打包器可能不会更改 soname。如果这是为了学校项目,你可能没问题,但如果这是为了任何重要的事情,就不要这样做。

希望这对您有所帮助。

关于linux - OpenCV 构建错误 : libwebp. 所以未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34559185/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com