У меня проблемы с поиском, почему эта библиотека (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
?)
Ошибка на самом деле сообщая вам «в кеше библиотеки нет совместимой библиотеки с таким именем», а не «на диске нет файла с таким именем».
Таким образом, это может сбить с толку, если общий объектный файл имеет неправильный формат.
Убедитесь, что он был создан для правильной платформы правильным компилятором! Вы можете посмотреть с file
и убедитесь, что динамическая ссылка не работает с помощью ldd
на вашем исполняемом файле.
Других решений пока нет …