编译器架构:
理解Blog中:三、STL、ABI、UNWIND层次关系
http://blog.youkuaiyun.com/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来完成的),具体看此文:http://www.chongh.wiki/blog/2016/04/08/linux-syscalls/
GCC中gcc与g++区别
GCC (Gnu Compiler Collection)(包括gcc/g++)
1.gcc 根据扩展名来自动检测调用c/c++的标准库
例

最低0.47元/天 解锁文章
944

被折叠的 条评论
为什么被折叠?



