编译器架构:
理解Blog中:三、STL、ABI、UNWIND层次关系
http://blog.csdn.net/vloong/article/details/19070443
上图分析:
g++complier是g++编译的,先调用其标准库libstdc++(包含了libsupc++),然后标准库又依赖libgcc_s,往下又依赖libc.so;
clangcompiler是clang编译的,先调用libc++(STL层),然后libc++abi(ABI层),然后是libgcc_s, 往下又依赖libc.so;
重点:libc.so是什么库文件?
答案:glibc库编译后生产的库文件,是LINUX系统中最底层的API,几乎任何其他运行库都要依赖glibc,它最要是对系统调用进行封装(你怎么能在C代码中直接用fopen函数就能打开文件? 打开文件最终还是要触发系统中的sys_open系统调用,而这中间的处理过程都是glibc来完成的),具体看此文:
编译器:GCC / Clang
最新推荐文章于 2023-11-01 11:58:02 发布