C++ 无法打开共享对象文件';libopencv_shape.so.3.1';在OpenCV中

C++ 无法打开共享对象文件';libopencv_shape.so.3.1';在OpenCV中,c++,linux,opencv,C++,Linux,Opencv,所以我刚刚在我的电脑上安装了OpenCV,我正在尝试做一个快速测试,让一切正常。我的电脑在Linux Deepin 15上运行。这使得问题有点难以解决,因为它并不是一个众所周知的流行发行版 无论如何,下面是我试图运行的代码: #include <iostream> #include <string> #include <sstream> using namespace std; #include "opencv2/core/core.hpp" #includ

所以我刚刚在我的电脑上安装了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;
}
它编译起来似乎没有错误。创建“主”文件,尽管文件管理器中的图标不是可执行文件的图标

当我尝试运行它时,会出现以下错误:

./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”文件的内容

我该怎么办


提前谢谢

必须运行以下命令:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib
它会解决你的问题。不过,这只适用于当前的bash实例。您需要将这一行复制到bashrc文件(
~/.bashrc
)中,以便将来的实例

打开CV后将其所有库绑定到一个megalib中。可能会有帮助。
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib