Используя ldconfig на Linux

17
задан jww 11 October 2018 в 04:42
поделиться

2 ответа

ldconfig смотрит во всех общих объектах, которые он находит, для поиска soname. Это тогда создает ссылку с помощью этого soname в качестве названия ссылки. Это является стандартным (но далеким от универсально сделанного) для soname, чтобы быть именем и основной версией библиотеки, таким образом, Ваше нечто so.1.1 библиотеки будет иметь soname нечто so.1, и ldconfig сделает ссылку названной этим.

Никакая часть системы во время выполнения не ищет или знает что-либо об имени foo.so. Это используется, когда Вы связываете свои программы с библиотекой. Нет никакого смысла в наличии той ссылки, если у Вас также нет всех других файлов для разработчика (заголовки и т.д.) для библиотеки, таким образом, нет никакого смысла в ldconfig, автоматически создающем его. И так как название ссылки на использование является только другим соглашением, и в этом случае не хранится в файле вообще, нет никакого пути к ldconfig для знания что имя создать.

Обычно это было бы создано вручную в цели установки Make-файла; когда библиотека упаковывается для дистрибутива Linux, ссылка обычно живет в-dev пакете наряду с заголовочными файлами.

25
ответ дан 30 November 2019 в 12:44
поделиться

Просто сделайте символьную ссылку сами:

ln -s /usr/lib/foo.so.1.1.1 /usr/lib/foo.so

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

4
ответ дан 30 November 2019 в 12:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: