c++: error: /usr/lib/x86_64-linux-gnu/libopencv_core.so.3.2.0: 没有那个文件或目录

在编译DS-SLAM时出现以下错误:

c++: error: /usr/lib/x86_64-linux-gnu/libopencv_core.so.3.2.0: 没有那个文件或目录
c++: error: /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.3.2.0: 没有那个文件或目录
c++: error: /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0: 没有那个文件或目录

不知道是什么原因它报错是与opencv3.2.0版本相关文件有关,但是我系统中没有安装3.2版本的opencv,以下是我的解决方法:

首先进入/usr/lib/x86_64-linux-gnu/下,查看各文件链接情况:

#进入相关文件夹下
cd /usr/lib/x86_64-linux-gnu/
#查看各文件链接情况
ls -l

然后我这里的情况是只有我系统现有的版本的相关文件的链接信息:

lrwxrwxrwx  1 root root        23 5月  23 21:12 libopencv_core.so.3.4 -> libopencv_core.so.3.4.5
lrwxrwxrwx  1 root root        46 5月  23 20:02 libopencv_core.so.3.4.5 -> /usr/local/opencv3/lib/libopencv_core.so.3.4.5
lrwxrwxrwx  1 root root        28 5月  23 21:12 libopencv_imgcodecs.so.3.4 -> libopencv_imgcodecs.so.3.4.5
lrwxrwxrwx  1 root root        51 5月  23 20:04 libopencv_imgcodecs.so.3.4.5 -> /usr/local/opencv3/lib/libopencv_imgcodecs.so.3.4.5
lrwxrwxrwx  1 root root        26 5月  23 21:12 libopencv_imgproc.so.3.4 -> libopencv_imgproc.so.3.4.5
lrwxrwxrwx  1 root root        49 5月  23 19:59 libopencv_imgproc.so.3.4.5 -> /usr/local/opencv3/lib/libopencv_imgproc.so.3.4.5

于是我就建立libopencv_core.so.3.2.0、libopencv_imgproc.so.3.2.0、libopencv_imgcodecs.so.3.2.0文件,然后把他们链接到我拥有的文件上:

(注意我这里的命令是在/usr/lib/x86_64-linux-gnu/文件夹下执行的,如果在别的终端中执行,应写清楚路径)

ps:sudo ln -s 链接到的文件 目标文件

sudo ln -s libopencv_core.so.3.4.5 libopencv_core.so.3.2.0

链接后是这样,这里就写了一个作为例子:

lrwxrwxrwx  1 root root        23 8月  28 21:07 libopencv_core.so.3.2.0 -> libopencv_core.so.3.4.5

将这三个文件重新链接后,重新编译,没有找不到文件的错误了,但是有新的错误:

/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.3.2.0:对‘icv_k0_ippiNorm_L2_32f_C1R’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.3.2.0:对‘icv_y8_ippsCopy_32s’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.3.2.0:对‘ippicvsZero_8u’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.3.2.0:对‘icv_k0_ippiSet_16u_C3R’未定义的引用

像这样等等很多,未定义应用的错误,我猜测应该是链接到的这个3.4.5版本的文件也不能用,然后我就在/usr/目录下搜索libopencv_imgproc文件,发现别的路径下,其实是opencv3.4.5的安装路径下有该文件,于是我就把libopencv_imgproc.so.3.2.0链接到opencv3.4.5的安装路径下的libopencv_imgproc.so.3.4.5,在进行编译就没有报错了。

lrwxrwxrwx  1 root root        41 8月  28 21:16 libopencv_imgproc.so.3.2.0 -> /usr/local/lib/libopencv_imgproc.so.3.4.5

总结,如果还有报错,就寻找别的文件进行链接,如果所有文件都报错,那么应该现有的opencv也有问题,就要考虑重新安装合适版本的opencv。

你可能感兴趣的:(DS-SLAM,linux,人工智能,算法)