ubuntu 中的 libc 还是 glibc?

Ale*_*xey 5 ubuntu gcc glibc libc

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

$ ldd application.exe
...
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
...
Run Code Online (Sandbox Code Playgroud)

Flo*_*mer 7

当前的 Ubuntu 使用 glibc 来实现 C 标准库。源包被称为glibc,但由于libc6历史原因,已安装的二进制包被调用。libc6如果您运行以下命令,您可以看到系统上软件包的确切版本:

dpkg -l libc6
Run Code Online (Sandbox Code Playgroud)

曾经有一个 glibc 的临时分支叫做 eglibc,但是eglibc 的开发已经被放弃了;在此之前,所有活动的 eglibc 特定端口都已合并到 glibc 中。

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


Jör*_*tag 6

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

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