gpt4 book ai didi

C 库与编译器一起分发还是直接由操作系统分发?

转载 作者:IT王子 更新时间:2023-10-29 00:41:41 25 4
gpt4 key购买 nike

据我了解,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,那么它们的编译产品应该是兼容的。这就是定义特定寄存器和调用约定的目的。

关于C 库与编译器一起分发还是直接由操作系统分发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6040801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com