【问题标题】:libc or glibc in ubuntu?ubuntu 中的 libc 还是 glibc?
【发布时间】:2019-05-31 20:39:12
【问题描述】:

我对这些库有点困惑。我现在在 Ubuntu 上工作,我使用 g++ 5,我看到我的应用程序链接在 libc.so 中。它是 Ubuntu 对 C 标准库的实现吗?它与 glibc 不同吗?

$ ldd application.exe
...
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
...

【问题讨论】:

    标签: ubuntu gcc glibc libc


    【解决方案1】:

    Libc 是 C 编程语言的标准库的名称。 Glibc 是 libc 的许多不同实现之一。特别是,Glibc 是作为 GNU 项目的一部分开发和维护的 libc 实现。

    Glibc 是许多不同的 libc 实现之一。其他一些著名的实现是 Microsoft Visual C Runtime(包括 libc)、musl、dietlibc、µClibc、各种 BSD libcs​​ 和 Google Bionic(Android 附带的 libc)。

    【讨论】:

    • 非常感谢!如何确定 Ubuntu 中使用了哪种实现?
    • 除非您使用非常专业的 Linux 发行版,否则您使用的是 Glibc。
    • 我可以向你保证glibc is still very much part of the GNU project。为什么你不这么认为?
    • 我是 linux、ubunutu 等的新手,我只想知道 libc、libm 的具体实现方式——例如,搜索正确的文档。
    • @FlorianWeimer:我记得大约 15 到 20 年前 Ulrich Drepper 发表过这样的声明。我认得你的名字,所以我自然会向你的专业低头。
    【解决方案2】:

    当前的 Ubuntu 使用 glibc 来实现 C 标准库。源包名为glibc,但由于历史原因,安装的二进制包名为libc6。如果你运行这个命令,你可以在你的系统上看到libc6包的确切版本:

    dpkg -l libc6
    

    以前有一个glibc的临时fork叫做eglibc,但是eglibc development has been abandoned;在此之前,所有活动的 eglibc 特定端口都合并到 glibc 中。

    Ubuntu 也有用于替代 libc 实现的软件包,例如 musl,但发行版本身不使用它们,因为它是基于 glibc 的。

    【讨论】:

      猜你喜欢
      • 2018-04-04
      • 2019-05-24
      • 2010-09-13
      • 1970-01-01
      • 2011-08-19
      • 2012-07-07
      • 2013-06-23
      • 2013-02-05
      • 2011-09-22
      相关资源
      最近更新 更多