首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指定本地libc是否调用全局libc?

指定本地libc是否调用全局libc?
EN

Unix & Linux用户
提问于 2015-09-02 18:31:37
回答 1查看 4.5K关注 0票数 4

如果我运行foo命令,指定要使用的不同的libc,如下所示:

代码语言:javascript
复制
LD_LIBRARY_PATH=$PATH_TO_MY_CUSTOM_LIBC foo

全局定义的libc是否用于运行上述命令?

为了上下文:考虑一下libc在计算机上的物理存在和可访问性的情况,但是由于某种原因不能使用。给定登录的shell,为了执行特定的命令,您需要提供不同的libc。

指定LD_LIBRARY_PATH内联,将其设置为工作的libc的位置,而不明显需要调用全局定义的libc。

为了在本地定义新的环境变量,会不会调用全局定义的libc?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-09-02 19:52:53

不是的。在/lib/libc.so.6的意义上,动态链接不是libc的一部分,它是/lib/ld.so的功能(在过去的几年中,两者的文件名和路径都发生了一些变化,但本质是相同的)。

是的,ld.so,动态链接器也是一个共享库。加载它是大多数linux二进制程序所做的第一件事,但在调用其main()函数之前。

尽管ld.so是libc的一个不同的文件,但它也是gnu发行版的一部分,包括源文件和编译的二进制格式。

ld.so中的链接是从gcc给出的硬编码代码块到每个linux二进制文件。它的路径也被硬编码成二进制文件。你不能轻易地改变它,尽管如果需要它是有可能的。

如果使用备用的libc.so.6设置覆盖LD_LIBRARY_PATH,则此库将用自己的库取代有序的libc,但它仍将由普通ld.so加载。

因此,你的问题的答案是“是的,但是.”。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/227094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档