& quot; не может открыть общий объектный файл & quot; но это существует

У меня проблемы с поиском, почему эта библиотека (matio) не работает для меня. В моем Makefile у меня есть это:

LIBS += -L/home/brian/.../matio-1.5.6/src/.libs/ -lmatio

Когда я пытаюсь запустить свой код (ссылки в порядке), я получаю эту ошибку:

ошибка при загрузке общих библиотек: libmatio.so.4: невозможно открыть файл общего объекта: нет такого файла или каталога

libmatio.so.4 существует в каталоге, указанном флагом -L.

Я построил библиотеку, и, кажется, пройти make check только с небольшим количеством ошибок записи (что хорошо, так как мне нужно только это для чтения).

Вещи, которые я пробовал:

  • Указание имени (т.е. -l:libmatio.so.4.0.2)
  • Добавление пути к LD_LIBRARY_PATH
  • Добавление пути в виде строки в /etc/ld.so.conf и беги sudo ldconfig
  • Добавление нового файла в /etc/ld.so.conf.d с пути и беги sudo ldconfig

(Когда я бегу ldconfig -p | grep matio ничего не возвращается. Я делаю что-то не так с ldconfig?)

2

Решение

Ошибка на самом деле сообщая вам «в кеше библиотеки нет совместимой библиотеки с таким именем», а не «на диске нет файла с таким именем».

Таким образом, это может сбить с толку, если общий объектный файл имеет неправильный формат.

Убедитесь, что он был создан для правильной платформы правильным компилятором! Вы можете посмотреть с file и убедитесь, что динамическая ссылка не работает с помощью ldd на вашем исполняемом файле.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector