为什么我的静态构建需要共享库?
每隔一段时间我就会从链接器中收到这些警告......(目前正在使用openssh-5.2p1)
这些警告类似于:"在静态链接的应用程序中使用'function'需要在运行时使用glibc版本中的共享库..."
当我谷歌时,我只看到修复,而不是原因.
谢谢,陈兹
它本身不需要共享库,它只是警告你,如果静态链接到glibc,某些东西可能无法正常工作.
其中一些是nsswitch,参见例如/etc/nsswitch.conf
.在系统中查找用户/组/主机名的不同方式和其他东西可以通过插件进行配置和更改 - 例如samba附带一个模块,用于管理在Windows域上配置的用户/活动目录透明.
/etc/nsswitch.conf
如果您静态链接到glibc,您的应用程序将不会尊重自定义gethostbyname
,getpwuid
其他功能只会使用查找事物的默认方式.
同样适用于您的应用程序可能使用的其他库,无论出于何种原因dlopen()s
,它们都会挂钩到glibc或类似的.
也可以看看
静态链接被认为是有害的