无法在 OpenCV 中打开共享对象文件“libopencv_shape.so.3.1”

Posted

技术标签:

【中文标题】无法在 OpenCV 中打开共享对象文件“libopencv_shape.so.3.1”【英文标题】:cannot open shared object file 'libopencv_shape.so.3.1' in OpenCV 【发布时间】:2016-10-14 21:17:31 【问题描述】:

所以我刚刚在我的计算机上安装了 OpenCV,我正在尝试进行快速测试以使一切正常。我的计算机在 Linux Deepin 15 上运行。由于它不是一个众所周知的流行发行版,因此问题有点难以解决。

无论如何,这是我要运行的代码:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;

int main(int argc, const char** argv) 
    Mat color = imread("lena.jpg");
    Mat gray = imread("lena.jpg", 0);

    imwrite("lenaGray.jpg", gray);
    return 0;

我在终端中使用以下命令编译它:

g++ main.cpp -o main `pkg-config opencv --cflags --libs`

它编译似乎没有错误。尽管文件管理器中的图标不是可执行文件的图标,但创建一个“主”文件。

当我尝试运行它时,我得到了这个错误:

./main: error while loading shared libraries: libopencv_shape.so.3.1: cannot open shared object file: No such file or directory

我完全不知道该怎么做。我真的需要让opencv启动并运行。我在互联网上查看过,甚至没有找到任何引用“libopencv_shape.so.3.1”文件的内容。

我该怎么办?

提前致谢!

【问题讨论】:

I just learned over here 打开的 CV 现在将其所有库捆绑在一个 megalib 中。可能会有所帮助。 【参考方案1】:

您必须运行以下命令:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

它将解决您的问题。不过,这仅适用于您当前的 bash 实例。您需要将此行复制到您的 bashrc 文件 (~/.bashrc) 以供将来使用

【讨论】:

以上是关于无法在 OpenCV 中打开共享对象文件“libopencv_shape.so.3.1”的主要内容,如果未能解决你的问题,请参考以下文章

libopencvso文件大小

全网首发:Linux自带opencv库的JAVA调用失败/java.lang.UnsatisfiedLinkError:libopencv_ml.so.405: 无法打开共享对象文件

libopencv_highgui.so.4.4:无法打开共享对象文件:没有这样的文件或目录

无法打开已知的共享对象文件

phantomjs无法打开共享对象文件

无法打开共享对象文件:没有这样的文件或目录;在 Eclipse 中运行或调试