ubuntu 中的 libc 或 glibc?

libc or glibc in ubuntu?

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

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

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

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

当前 Ubuntu 使用 glibc 实现 C 标准库。由于历史原因,源代码包被称为 glibc, but the installed binary package is called libc6。如果你 运行 这个命令,你可以在你的系统上看到 libc6 包的确切版本:

dpkg -l libc6

曾经有一个名为 eglibc 的 glibc 临时分支,但是 eglibc development has been abandoned;在此之前,所有活动的特定于 eglibc 的端口都已合并到 glibc 中。

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