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

Я столкнулся с этой проблемой, когда скомпилировал mosquitto на своей машине Fedora 21 из исходного кода.

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

Клиенты (например, mosquitto_pub и mosquitto_sub) продолжают выдавать эту ошибку даже при переустановке.


person user1048839    schedule 16.06.2015    source источник


Ответы (3)


Предполагая, что вы установили библиотеки в /usr/local/lib, что является значением по умолчанию, правильный ответ — запустить /sbin/ldconfig как root/sudo.

В некоторых системах вам нужно будет добавить /usr/local/lib к путям, которые кэшируют ld, например.

echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
person ralight    schedule 16.06.2015
comment
Не уверен, почему это не принятый ответ. Кажется, все вокруг лучше и сработало для меня. - person Malachi; 14.03.2016

Я исправил эту проблему с помощью sysmlinks

$vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
include /usr/local/lib
/usr/lib
/usr/local/lib
$/sbin/ldconfig
$ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
person user1048839    schedule 16.06.2015
comment
Этот ответ не имеет смысла, если ваши библиотеки находятся в /usr/local/mosquitto/lib, то созданные вами символические ссылки не будут иметь значения. Если библиотеки находятся в /usr/local/lib, тогда просто запуск ldconfig обновит кеш компоновщика, нет необходимости изменять ld.so.conf. - person ralight; 16.06.2015
comment
Да, вы правы насчет /usr/local/mosquitto/lib. Я изменил его на /usr/local/lib. Что касается простого запуска «ldconfig» для обновления кеша компоновщика, я безуспешно пытался это сделать, прежде чем получил это несколько «грязное» решение. - person user1048839; 16.06.2015
comment
Вы правы, я удивлен, что /usr/local/lib не указан в настройках Fedora по умолчанию. - person ralight; 22.06.2015
comment
это решение работало для установки mosquitto на amazon linux 2 - person ᐅdevrimbaris; 19.09.2020

Это указывает на то, что компоновщик не знает, где найти библиотеку. Просто запустите sudo /sbin/ldconfig, чтобы обновить кэш компоновщика библиотек. Это не то, что уникально для комаров.

person Milap Jhumkhawala    schedule 29.11.2016