libavcodec 56 не найден, хотя он установлен - PullRequest
0 голосов
/ 14 ноября 2018

Я получаю это сообщение об ошибке, когда пытаюсь скомпилировать проект Intel OpenVino в Ubuntu 18.04: warning: libavcodec-ffmpeg.so.56, needed by /opt/intel/computer_vision_sdk_2018.3.343/opencv/lib/libopencv_videoio.so.3.4.3, not found

Я также получаю похожие сообщения об ошибках: libavformat-ffmpeg.so.56, libavutil-ffmpeg.so.54 и libswscale-ffmpeg.so.3.

Однако, когда я набираю ffmpeg в терминале, я получаю:

ffmpeg version 2.7.7 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04) configuration:
    libavutil 54. 27.100 / 54. 27.100
    libavcodec 56. 41.100 / 56. 41.100
    libavformat 56. 36.100 / 56. 36.100
    libavdevice 56. 4.100 / 56. 4.100
    libavfilter 5. 16.101 / 5. 16.101
    libswscale 3. 1.101 / 3. 1.101
    libswresample 1. 2.100 / 1. 2.100 Hyper fast Audio and Video encoder

У меня есть все правильные версии. Ffmpeg находится в / usr / local / bin. Почему OpenVino не видит этого? Любой совет будет оценен, спасибо заранее!

Вот проект, который я пытаюсь скомпилировать: https://github.com/intel-iot-devkit/intruder-detector

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Похоже, что ожидаются файлы из пакета Ubuntu 16.04 ffmpeg, который Ubuntu упаковал как libavcodec-ffmpeg.so.56 и т. Д. (Текущая версия Ubuntu использует стандартные имена, такие как libavcodec.so.57.)

Вы скомпилировали ffmpeg без параметров настройки, но вам нужно --enable-shared для файлов .so.

Вы можете скомпилировать ветку релиза FFmpeg 2.8 с --enable-shared, и она предоставит libavcodec.so.56 и т. Д. Обратите внимание на разницу имен: libavcodec.so.56 против libavcodec-ffmpeg.so.56. Если это вызывает проблемы, вам придется иметь дело с этим. Я бы начал со ссылки на ./configure --help или эквивалент того, что вы компилируете.

0 голосов
/ 14 ноября 2018

Ваш компоновщик жалуется на невозможность найти динамические библиотеки.Вам нужно выяснить, где находятся эти общие объекты и где ваш компоновщик их ищет.

ldconfig -v 2>/dev/null |grep -v ^$'\t'
# ldconfig is a tool for configure linker search path
# This command will tell you where it is searching for the necessay libs.

Я думаю, ваши библиотеки могут находиться в /usr/local/lib, и этот каталог не ищется компоновщиком.

Если это так, попробуйте создать файл, содержащий этот каталог в /etc/ld.so.conf.d, например, /etc/ld.so.conf.d/local.conf.Затем sudo ldconfig и попробуйте снова построить свой проект.

...