【C/C++】教你区分libc、glibc、libgcc、libstdc++等名词

2023-05-16

libc —— C标准库

https://en.wikipedia.org/wiki/C_standard_library

libc作为抽象概念

从一方面来说,libc可以表示“C标准库”这个抽象概念

按照ISO C规范所述,C标准库(C standard library,简称为libc)是C编程语言的标准库。C 标准库为程序员提供了各种各样的宏、类型定义和函数,程序员可以使用它们来完成字符串处理、数学计算、输入/输出处理、内存管理等多种任务。

C标准库是一个抽象的概念,我们可以把它看作一个黑盒——它只保证为程序员提供ISO C规范中规定的接口,不考虑这些接口的具体实现

libc作为库文件名称

从另一方面来说,在某些C标准库的具体实现中,libc是核心库文件的名称

glibc、musl、newlib等程序库都是C标准库的不同具体实现。在某些具体实现中,核心库文件的名称就是libc.so(动态库)和libc.a(静态库)。

举例

  • 在使用glibc作为C标准库具体实现的Ubuntu 22.04 Linux发行版中(x64架构),glibc的核心动态库文件为/lib/x86_64-linux-gnu/libc.so,静态库文件为/lib/x86_64-linux-gnu/libc.a
  • 在使用newlib作为C标准库具体实现的Cygwin开发环境中(x64架构),newlib的核心动态库文件为/usr/bin/cygwin1.dll,静态库文件为/usr/lib/libc.a

glibc —— GNU C程序库

https://www.gnu.org/software/libc/

libstdc++ —— GNU C++程序库

https://gcc.gnu.org/onlinedocs/libstdc++/

libgcc —— GCC低级运行时库

https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html

附:C语言ISO C标准

  • 发文时(2023年3月)最新C标准文件试读 ISO/IEC 9899:2018
    https://www.iso.org/obp/ui/#iso:std:iso-iec:9899:ed-4:v1:en
  • C11标准 ISO/IEC 9899:2011
    https://www.iso.org/standard/57853.html
  • C标准草案 PDF文档 ISO/IEC 9899:201x
    https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf
  • C标准草案 PDF文档 ISO/IEC 9899:202x
    https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C/C++】教你区分libc、glibc、libgcc、libstdc++等名词 的相关文章

随机推荐