Почему для моей статической сборки требуются общие библиотеки?

Почему для моей статической сборки требуются общие библиотеки?

Время от времени я получаю эти предупреждения от своего компоновщика... (на данный момент это происходит с openssh-5.2p1)

Предупреждения выглядят примерно так: «Использование 'функции' в статически связанных приложениях требует во время выполнения общих библиотек из версии glibc, используемой для..."

Когда я гуглю, я вижу только исправления, а не причины.

Спасибо, Ченз.


person Crazy Chenz    schedule 07.07.2009    source источник


Ответы (1)


Он не требует общих библиотек как таковых, он просто предупреждает вас, что некоторые вещи могут работать неправильно, если вы статически скомпонуете glibc.

Некоторыми из этих вещей являются nsswitch, см., например. /etc/nsswitch.conf .В системе различные способы поиска пользователей/групп/имен хостов и других вещей могут быть настроены и изменены с помощью плагинов - например. Samba поставляется с модулем для прозрачного управления пользователями, сконфигурированными в домене Windows/активном каталоге.

Ваше приложение не будет учитывать настройку /etc/nsswitch.conf, если вы статически ссылаетесь на glibc, такие функции, как gethostbyname, getpwuid и другие, будут просто использовать способы поиска по умолчанию.

То же самое касается, например. другие библиотеки, которые ваше приложение может использовать по какой-либо причине dlopen()s для подключения к glibc или подобным.

Смотрите также

Статические ссылки считаются вредными

person nos    schedule 07.07.2009