libcxcore.so.2 отсутствует в openCV - PullRequest
7 голосов
/ 06 марта 2011

Я пытаюсь запустить какой-то предварительно скомпилированный код (исходный код недоступен) в Ubuntu, для которого требуется установить openCV. Вчера я установил последнюю версию openCV (из SVN) и установил ее в соответствии с руководством по установке Debian на сайте openCV (cmake -> make -> sudo make install), и все, казалось, прошло нормально.

Теперь, когда я пытаюсь запустить предварительно скомпилированный код, я получаю сообщение об ошибке "./stipdet: ошибка при загрузке общих библиотек: libcxcore.so.2: не могу открыть файл общего объекта: нет такого файла или каталога" Похоже, что другим людям, у которых возникла подобная проблема, удалось ее устранить, переместив libcxcore.so.2 из папки lib opencv в другое место, но у меня вообще нет libcxcore.so.2 в моей папке opencv. Я вижу libopencv_core.so.2.2 там среди прочего. Может ли быть так, что имя libcxcore было изменено в последней версии openCV? Или я не правильно его установил?

btw: запуск locate libcxcore в терминале ничего не возвращает

Ответы [ 5 ]

9 голосов
/ 19 апреля 2011

У меня была такая же проблема при работе с STIP и OpenCV 2.2. Чтобы решить эту проблему, просто создайте символические ссылки, как показано ниже. У меня это работает.

libcvaux.so.2 -> /usr/lib/libopencv_video.so.2.2.0
libcv.so.2 -> /usr/lib/libopencv_legacy.so.2.2.0
libcxcore.so.2 -> /usr/lib/libopencv_core.so.2.2.0
libhighgui.so.2 -> /usr/lib/libopencv_highgui.so.2.2.0
libml.so.2 -> /usr/lib/libopencv_ml.so.2.2.0
8 голосов
/ 07 марта 2011

У меня была та же проблема, и я решил ее, установив libcv, libcvaux, libhighgui и их библиотеки -dev из Synaptics.Но программа зависит от разделяемых библиотек libcv.so.2, а Synaptics устанавливает libcv.so.4.0.0.Поэтому я создал символические ссылки для каждой установленной библиотеки, выполнив команду:

sudo ln -s /usr/lib/libcxcore.so.4.0.0 /usr/lib/libcxcore.so.2

и т. Д. Для каждой библиотеки, которая нужна программе.Теперь он работает нормально для меня.

3 голосов
/ 12 апреля 2013

небольшое дополнение к (правильному) ответу Зифея Тонга: необходимо создать символические ссылки и также необходимо экспортировать LD_LIBRARY_PATH для bash, это:

libcvaux.so.2 -> /usr/lib/libopencv_video.so.2.2.0
libcv.so.2 -> /usr/lib/libopencv_legacy.so.2.2.0
libcxcore.so.2 -> /usr/lib/libopencv_core.so.2.2.0
libhighgui.so.2 -> /usr/lib/libopencv_highgui.so.2.2.0
libml.so.2 -> /usr/lib/libopencv_ml.so.2.2.0

export LD_LIBRARY_PATH="path to symbolic links' directory"
2 голосов
/ 07 ноября 2011

Эта ошибка вызвана тем, что они изменяют имена библиотек после openCV 2.2, однако STIP зависит от предыдущих библиотек.Вам просто нужно установить несколько символических ссылок, и это будет работать.Следующая ссылка решит вашу проблему http://web.michaelchughes.com/how-to/install-stip-software-with-opencv-v2

1 голос
/ 07 марта 2011

Да, имена библиотек изменились. Попробуйте OpenCV 2.1 или 2.0 (он изменился для 2.2 или 2.1, я думаю). Если ваш предварительно скомпилированный код предназначен для Ubuntu, почему вы не установили пакет Ubuntu OpenCV?

...