- libc linux下的C标准库,后来演化成了glibc,klibc,uclibc等等
- glibc linux最底层的api,任何库都要依赖它
- eglibc glibc的变体,ubuntu用的底层
- glib 一个和glibc没半毛钱关系的库,linux和windows下通用,linux桌面系统用的是该库
- libc++/libstdc++ 是C++而不是C的标准库,libc++/libstdc++分别是clang和gcc编译的标准库。(libc++和clang)以及(libstdc++和gcc)他们本身是绑在一起的。但是他们都没有和glibc绑定在一起。他们之间的关系大概是这样的:
- GCC编译器
GCC编译器并不只是gcc,这是两个概念。最早的GCC编译器只能编译C语言的代码,但是随着GCC编译器的更新,其功能扩展到也可以编译多个别的语言,比如说C++、Go、Objective-C,Objective-C ++,Fortran,Ada,D 和 BRIG(HSAIL)等程序,甚至于 GCC 6 以及之前的版本还支持编译 Java 程序。 - gcc C语言编译器,将.c和.cpp文件分别使用c和c++来编译,不会自动链接标准库STL
- g++ C++编译器,将.c和.cpp文件统一使用c++来编译,且会自动链接标准库STL
- g77和gfortran GNU协议下的Fortran编译器。g77是Fortran 77标准下的Fortran编译器,支持部分Fortran90和95标准;主要包含在gcc4.0之前的gcc架构中。gfortran是Fortran 95标准下的Fortran编译器,还支持部分Fortran2003标准;作为一个单独的编译器而不再是gcc的一部分。
参考资料:
【Linux】理清gcc、glibc、libstdc++的关系
g77、gfortran、gcc的区别与联系