
【C/C++】教你区分libc、glibc、libgcc、libstdc++等名词
libc是C语言标准库的简称;glibc是C标准库的一种具体实现;libstdc++是C++标准库的一种具体实现;libgcc是GCC编译器集合使用的一个低层库,与C标准库没有直接关系。
·
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
更多推荐
所有评论(0)