gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:54:45 27 4
gpt4 key购买 nike

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

我经常从链接器处收到这些警告...(目前 openssh-5.2p1 上出现这种情况)

警告看起来类似于:“在静态链接的应用程序中使用‘函数’需要在运行时使用 glibc 版本中的共享库来...”

当我用谷歌搜索时,我只看到修复,而不是原因。

谢谢,陈兹

最佳答案

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

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

如果您静态链接到 glibc、gethostbynamegetpwuid 等函数,您的应用将不支持 /etc/nsswitch.conf 自定义其他人只会使用默认的查找方式。

同样适用于例如您的应用程序可能出于某种原因使用 dlopen()s 本身来 Hook glibc 或类似的其他库。

另请参阅

Statically linking considered harmful

关于gcc - 为什么我的静态构建需要共享库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1092456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com