为什么我的静态构建需要共享库?为什么我的静态构建需要共享库?
几乎每隔一段时间,我从我的链接这些警告...
的警告看起来类似于(目前它在OpenSSH-5.2p1发生): “在静态链接的应用程序中使用‘功能’需要在运行时从glibc版本共享库用于...“
当我谷歌,我只看到修复,而不是原因。
感谢, Chenz
为什么我的静态构建需要共享库?为什么我的静态构建需要共享库?
几乎每隔一段时间,我从我的链接这些警告...
的警告看起来类似于(目前它在OpenSSH-5.2p1发生): “在静态链接的应用程序中使用‘功能’需要在运行时从glibc版本共享库用于...“
当我谷歌,我只看到修复,而不是原因。
感谢, Chenz
它不需要共享库本身,它只是警告你,如果你静态链接到glibc的一些事情可能无法正常工作。
其中一些东西是nSwitch,例如见。 /etc/nsswitch.conf。在一个系统中,查找用户/组/主机名和其他东西的不同方法可以通过插件进行配置和修改 - 例如, samba提供了一个模块,用于管理透明地在Windows域/活动目录中配置的用户。
如果您静态链接到glibc,您的应用程序将不会执行/etc/nsswitch.conf定制,诸如gethostbyname,getpwuid和其他功能的函数将只使用默认的查找方式。
同样适用于例如其他库你的应用程序可能会使用它,无论出于何种原因dlopen()本身钩入glibc或类似的。
又见