Ошибка при загрузке разделяемых библиотек: внутренняя ошибка

Я перекрестно скомпилировал OpenCV для руки в соответствии с этим руководством и построил эту программу .

Когда я впервые запустил его так:

./DisplayImage image.png 

Я получил:

./DisplayImage: ошибка при загрузке разделяемых библиотек:
libopencv_highgui.so.3.1: невозможно открыть файл общих объектов: нет такого файла или каталога

Поэтому я решил, что ему нужна библиотека libopencv_highgui.so.3.1 . Поэтому я добавил все эти библиотеки в /lib :

 (1) libopencv_highgui.so (2) libopencv_highgui.so.3.1 (3) libopencv_highgui.so.3.1.0 

символические ссылки: (1) -> (2) -> (3)

Но теперь я получаю:

./DisplayImage: ошибка при загрузке разделяемых библиотек:
lib / libopencv_highgui.so.3.1: внутренняя ошибка

Я запустил file как в библиотеке, так и в исполняемом файле, чтобы проверить их информацию, и это результат:

 .../opencv/platforms/linux/my_build/lib$ file libopencv_highgui.so.3.1.0 libopencv_highgui.so.3.1.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=1107ba22b36437bedb37dbfe0250626c14759be9, not stripped .../opencv_sample$ file DisplayImage DisplayImage: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=aef57fe79d0928ca3afdff8d1b65268e1ad72e77, not stripped 

редактировать:
Запуск readelf -d DisplayImage | grep NEEDED readelf -d DisplayImage | grep NEEDED производит:

  0x00000001 (NEEDED) Shared library: [libopencv_highgui.so.3.1] 0x00000001 (NEEDED) Shared library: [libopencv_imgcodecs.so.3.1] 0x00000001 (NEEDED) Shared library: [libopencv_core.so.3.1] 0x00000001 (NEEDED) Shared library: [libstdc++.so.6] 0x00000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x00000001 (NEEDED) Shared library: [libc.so.6] 0x00000001 (NEEDED) Shared library: [ld-linux-armhf.so.3] 

Я нашел их всех на моей цели, кроме ld-linux-armhf.so.3 .

Что может вызвать эту проблему «внутренней ошибки»?

  • установить opencv-2.4-9 на centos 6.5 с поддержкой cuda 5.5
  • Как настроить OpenCV и Cygwin для совместной работы?
  • Как добавить зависимости в библиотеке debian / control?
  • Скажите Python использовать альтернативную библиотеку
  • dh_install не может найти usr / lib / lib * .a
  • Не удалось установить открытое CV в Ubuntu 12.04
  • Не удалось импортировать cv2 в python2
  • Разделить видео на несколько фрагментов в соответствии с несколькими начальными и конечными кадровыми индексами
  • One Solution collect form web for “Ошибка при загрузке разделяемых библиотек: внутренняя ошибка”

    когда бинарный файл скомпилирован, он может использовать разделяемые библиотеки, эти библиотеки являются ссылками с номером версии, чтобы вы могли поддерживать поддерживаемый библиотечный модуль.

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

    однако это не означает, что двоичный файл будет поддерживать эту версию. Некоторые функции могут быть изменены, некоторые функции удалены или добавлены, и так далее.

    Поэтому я бы предложил перекомпилировать двоичный файл с более новой версией libary, во время компиляции будут помечены несовместимости.

    вы можете видеть зависимости библиотек с помощью ldd.

    Пример;

     $ ldd /bin/ls linux-vdso.so.1 (0x00007ffc65ff3000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f9033f91000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9033bf1000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f9033979000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9033771000) /lib64/ld-linux-x86-64.so.2 (0x0000558f25845000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9033551000) 

    Edit: ps … вы не можете просто копировать файлы через их собственные зависимости. для вашей компиляционной машины вам понадобятся аналогичные версии lib для компиляции.

    Interesting Posts

    Убедитесь, что на экране есть звонок / предупреждение со всей строкой состояния

    Мониторинг использования диска в каталоге / файле

    Как читать из именованного канала после завершения процесса записи?

    это linux: все ли файл снижает производительность?

    Экранирование тире в вызове `dch`

    Как работает GLOBIGNORE?

    Поведение подстановки команды bash с помощью команды из строки в переменной

    Существуют ли программы или команды CLI для управления файлами * .gdbm

    Присоедините два файла, соответствующие столбцу, с повторениями

    ISC DHCP с Active Directory Secure Dynamic DNS Updates

    Книга о том, как Linux работает с точки зрения администратора?

    Сервер ретрансляции для общего трафика TCP?

    Как установить пароль для файлов PDF?

    пакеты пакетной установки в список

    Есть ли дистрибутив, который предлагает частые обновления пакетов программного обеспечения, но стабильность и согласованность в системных пакетах?

    Linux и Unix - лучшая ОС в мире.