当前位置:  开发笔记 > 运维 > 正文

为什么我的静态构建需要共享库?

如何解决《为什么我的静态构建需要共享库?》经验,为你挑选了1个好方法。

为什么我的静态构建需要共享库?

每隔一段时间我就会从链接器中收到这些警告......(目前正在使用openssh-5.2p1)

这些警告类似于:"在静态链接的应用程序中使用'function'需要在运行时使用glibc版本中的共享库..."

当我谷歌时,我只看到修复,而不是原因.

谢谢,陈兹



1> nos..:

它本身不需要共享库,它只是警告你,如果静态链接到glibc,某些东西可能无法正常工作.

其中一些是nsswitch,参见例如/etc/nsswitch.conf.在系统中查找用户/组/主机名的不同方式和其他东西可以通过插件进行配置和更改 - 例如samba附带一个模块,用于管理在Windows域上配置的用户/活动目录透明.

/etc/nsswitch.conf如果您静态链接到glibc,您的应用程序将不会尊重自定义gethostbyname,getpwuid其他功能只会使用查找事物的默认方式.

同样适用于您的应用程序可能使用的其他库,无论出于何种原因dlopen()s,它们都会挂钩到glibc或类似的.

也可以看看

静态链接被认为是有害的

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有