libhdf5.so.103: не удается открыть общий объектный файл

#eclipse

#eclipse

Вопрос:

Я столкнулся с проблемой с библиотеками hdf5 в eclipse CDT. При запуске тестовой программы на C я получил оперативную информацию, как показано ниже:

/home/lsl/Documents /CODE/eclipse-workspace/ReadWriteHDF5/Debug/ReadWriteHDF5: ошибка при загрузке общих библиотек: libhdf5.so.103: не удается открыть общий объектный файл: такого файла или каталога нет.

libhdf5.so подтверждено, что он существует в /usr/local/lib/hdf5-1.10.4/lib и /usr/local/lib/hdf5-1.10.4/lib находится внутри LD_LIBRARY_PATH . У вас есть какие-либо указания?

Большое спасибо!

Ответ №1:

Похоже, Linux — ваша основная операционная система. Посмотрите, что происходит при вводе

sudo apt install libhdf5-dev

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

Ответ №2:

Я сталкиваюсь с аналогичной проблемой при компиляции кода C , использующего Armadillo. Поскольку у меня установлена anaconda, я нахожу libhdf5.so.103 файл, расположенный по адресу ~/anaconda3/lib . После того, как я добавляю путь к LD_LIBRARY_PATH , ошибка исчезает.

Комментарии:

1. Кажется, это работает при компиляции Armadillo, но при сборке Ensmallen проблема возвращается.

Ответ №3:

Сегодня я столкнулся с точно такой же проблемой (возможно, единственное отличие заключается в том, что жалоба на нее libhdf5.so.200 отсутствовала). В итоге я выяснил, что система (Ubuntu 20.04) уже поставляется с libhdf5-dev версией 1.10.4, и это каким-то образом конфликтовало с установленной мной версией 1.12.2. Моя командная строка сборки выглядит следующим образом:

 clang   <...> -L/my/custom/path/to/hdf5-1.12.2/hdf5/lib <...>
  

Поскольку системный hdf5 находится в стандартном расположении, компоновщик находит одновременно две версии, вызывая проблему.

Мое решение таково:

 sudo apt purge libhdf5-dev
  

Надеюсь, это поможет.