年轻人免费观看视频百度词条优化工作
相关阅读
C语言https://blog.csdn.net/weixin_45791458/category_12423166.html?spm=1001.2014.3001.5482
libc用通常被用来指代标准C库的简称,即满足C语言标准的库,可供其他程序使用。但由于一些历史原因,它的概念出现了一些模糊,本文旨在帮助读者厘清这些概念。
glibc
在目前的Linux系统中,最广泛使用的标准C库是由GNU项目开发的实现(http://www.gnu.org/software/libc/),它的第一个正式版本(1.0)诞生于1992年9月(在此之前还存在非正式版本),目前最新的版本是2025年1月发布的2.41。
/lib/目录下存在一个libc.so.6文件,通常是指向libc-2.x.so文件的符号链接,这被称为SONAME,用来管理共享库的依赖关系,其中6意思是主版本号为6,可是之前谈到glibc最新的主版本为2.41,为什么会出现这种情况呢?这时就需要谈到Linux libc了。
Linux libc
在glibc的第一个正式版本推出后,Linux社区觉得glibc的开发进度太慢,无法满足Linux的需求,于是对glib的1.x版本分支出了Linux libc,并发布了它的2、3、4、5版本,在一段时间内,Linux libc是许多Linux发行版的标准C库。但当glibc 2.0发布时(1997年1月),它在各方面都显著优于Linux libc,所有曾使用Linux libc的Linux发行版很快都重新切换回了glibc。
当时的Linux libc 5的命名类似libc.so.5.4.38,由于主版本号为5,其对应的SONAME是libc.so.5。而glibc 2.0推出时并没有使用常见的命名方式如glibc.so.2.x.x而是使用libc-2.x.so,但其对应的SONAME却为了和之前Linux libc保持一致而使用了libc.so.6。换句话说,如果未来推出了glibc 3.0,则其对应的SONAME应该是libc.so.7(为了ABI兼容,glibc的主版本已经二十多年没有升级了)。