c - 编译器和链接器之间有什么区别?

标签 c compiler-construction linker terminology

C 中的编译器和链接器有什么区别?

最佳答案

编译器将以人类可读的编程语言编写的代码转换为处理器可以理解的机器代码表示。此步骤创建对象 文件。

编译器完成此步骤后,还需要执行另一个步骤来创建可以调用和运行的工作可执行文件,即关联您的编译代码需要调用的函数调用(例如)才能工作.例如,您的代码可以调用 sprintf,它是 C 标准库中的例程。您的代码没有执行 sprintf 提供的实际服务,它只是报告必须调用它,但实际代码驻留在公共(public) C 库中的某个地方。要执行此(以及许多其他)链接,必须调用链接器。链接后,您将获得可以运行的实际可执行文件。

关于c - 编译器和链接器之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3831312/

相关文章:

c - 如何将一个字符串分成不同的字符

没有头文件的C函数

c - 从 C 中的文件获取 str 时出现奇怪的字符

c++ - QMAKE *.pro 文件 : enable debugging info in release mode

java - 从 sts/eclipse 中调用不同语言的编译器

ios - iOS 中两个枚举之间的成本分析

c - 在C中从文件动态分配结构数组

c++ - 遍历特定部分中的所有符号并获取它们的签名

c - 最后加载 elf 部分后,闪存中存在其他数据

c++ - atexit() 与独立的 CLang 未定义