Ste*_*ini 70

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

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

  • +1好的解释.请注意,在大多数操作系统中,实际上涉及*两个*链接器:编译后运行的链接器并生成可执行文件(通常称为"链接器"),以及链接到动态加载库(也称为.so或.)的链接器. dll)在执行时(通常称为"动态链接器"). (28认同)

Ode*_*ded 25

编译器从源代码生成目标代码文件(机器语言).

一个连接器结合了这些目标代码文件转换成可执行.

许多IDE连续调用它们,因此您实际上从未看到链接器工作.有些语言/编译器没有独特的链接器,编译器将链接作为其工作的一部分.