Jay*_*Jay 6 c linux compiler-construction solaris
根据我的理解,C库必须与编译器一起分发.例如,GCC必须分发它自己的C库,Forte必须分发它自己的C库.我的理解是否正确?
但是,使用GCC编译的用户库是否可以与Forte C库一起使用?如果系统中存在两个C库,那么在运行时会调用哪一个?
此外,如果一个应用程序链接到多个库,一些用GCC编译,一些用Forte编译,那么用GCC编译的库会自动链接到GCC C库,并且它对Forte的行为也是如此.
GCC附带了libgcc,其中包含辅助函数来执行长除法(甚至更简单的事情,例如CPU上没有乘法指令的乘法).它不需要特定的libc实现.FreeBSD使用BSD派生的,glibc在Linux上非常流行,而且对于像avr-libc这样的嵌入式系统有特殊的.
系统可以安装许多库(libc和其他),选择它们的规则因操作系统而异.如果你静态链接它完全在编译时确定.如果您动态链接,则会出现版本控制和路径规则.通常,您不能在运行时混合和匹配,因为编译到可执行文件中的库(来自标头)的位.
如果两个编译器的编译产品都遵循平台的ABI,则它们应该是兼容的.这是定义特定寄存器和调用约定的目的.