2

我刚刚将我的计算机升级到 Ubuntu 16.04。现在每次尝试运行用 opencv 编译的软件时,都会出现以下错误:

libavcodec.so.56: cannot open shared object file: No such file or directory

环顾四周/usr/lib/x86_64-linux-gnu/,我能找到libavcodec.so,但没有libavcodec.so.56

尝试运行时sudo apt-get install libavcodec56,我得到:

Package 'libavcodec56' has no installation candidate

我已经在互联网上搜索了答案,但目前找不到任何东西。任何解决这个烦人问题的帮助将不胜感激。

4

4 回答 4

3

只需键入以下命令安装 ffmpeg:

sudo apt-get install -y ffmpeg

你得到这个文件:

  1. /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so
  2. /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56
    复制 /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56/usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56
于 2017-02-11T23:43:25.493 回答
1

我将在这里发布我在为 python 安装 opencv 时如何在我的树莓派 3 中解决同样的问题,希望有人在同一时间。

1)通过以下命令确保您没有“python-opencv”以外的opencv版本。

sudo dpkg --get-selections | grep cv3

如果上面显示输出卸载它如下

dpkg -r opencv3.1

“opencv3.1”应该替换为您的版本。

2)然后按照以下步骤安装“python-opencv”

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-setuptools
sudo apt-get install python-pip
sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame

这个博客解释了安装过程

于 2017-08-26T06:10:45.873 回答
0

FeRD 的评论让我解决了这个问题。ffmpeg 是从源安装的,ld 路径设置不正确,pulseaudio 没有启动。so lib 文件是双符号链接的:

krzys@kLatitude-E6430:~$ ls -l /usr/lib/x86_64-linux-gnu/libavcodec.so
lrwxrwxrwx 1 root root 20 sie 23  2018 /usr/lib/x86_64-linux-gnu/libavcodec.so -> libavcodec-ffmpeg.so


  krzys@kLatitude-E6430:~$ ls -l /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so
lrwxrwxrwx 1 root root 30 sie 23  2018 /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so -> libavcodec-ffmpeg.so.56.60.100

sudo ldconfig -vl /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56.60.100

最后一个命令允许我设置符号链接,pulseaudio deamon 开始运行。

于 2020-06-07T20:11:01.243 回答
-1

我有一个类似的问题,我缺少指向 4 个共享库的版本符号链接,但有正确的 so 库。您可以自己创建缺少的版本符号链接:

readelf -d libavcodec.so  | grep SONAME
0x000000000000000e (SONAME)             Library soname: [libavcodec-ffmpeg.so.56]
sudo ln -s libavcodec.so libavcodec.so.56
于 2017-04-19T20:25:41.070 回答