我对这些库有点困惑。我现在在Ubuntu上工作,我使用g++ 5,我看到我的应用程序链接在libc.so中。它是Ubuntu对C标准库的实现吗?它与glibc不同吗?
$ ldd application.exe ... libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 ...
u4vypkhs1#
当前的Ubuntu使用glibc来实现C标准库。源代码包名为glibc,但由于历史原因,安装的二进制包名为libc6。如果运行以下命令,您可以在系统上看到libc6包的确切版本:
glibc
libc6
dpkg -l libc6
glibc曾经有一个临时的分支叫做eglibc,但是eglibc development has been abandoned;在此之前,所有活动的eglibc特定端口都被合并到glibc中。Ubuntu也有用于替代libc实现的包,比如musl,但是发行版本身并不使用它们,因为它是基于glibc的。
2vuwiymt2#
Libc是C编程语言的标准库的名称。Glibc是libc的许多不同实现之一。特别地,Glibc是作为GNU项目的一部分开发和维护的libc实现。Glibc是libc的众多不同实现之一,其他一些著名的实现包括Microsoft Visual C Runtime(包含libc)、musl、dietlibc、µClibc、各种BSD libc和Google Bionic(Android附带的libc)。
2条答案
按热度按时间u4vypkhs1#
当前的Ubuntu使用glibc来实现C标准库。源代码包名为
glibc
,但由于历史原因,安装的二进制包名为libc6
。如果运行以下命令,您可以在系统上看到libc6
包的确切版本:glibc曾经有一个临时的分支叫做eglibc,但是eglibc development has been abandoned;在此之前,所有活动的eglibc特定端口都被合并到glibc中。
Ubuntu也有用于替代libc实现的包,比如musl,但是发行版本身并不使用它们,因为它是基于glibc的。
2vuwiymt2#
Libc是C编程语言的标准库的名称。Glibc是libc的许多不同实现之一。特别地,Glibc是作为GNU项目的一部分开发和维护的libc实现。
Glibc是libc的众多不同实现之一,其他一些著名的实现包括Microsoft Visual C Runtime(包含libc)、musl、dietlibc、µClibc、各种BSD libc和Google Bionic(Android附带的libc)。