链接在编译器的上下文中意味着什么?

时间:2011-11-27 04:44:03

标签: compiler-construction linker

我正在学习更多有关编译器的知识。在尝试理解this Wikipedia article on LLVM时,我碰到了“链接”一词。我以前见过这个词但是没有真正理解它。 在编译器的上下文中,链接是什么意思?

2 个答案:

答案 0 :(得分:2)

链接是将所有编译对象相互连接以形成最终可执行文件的过程。当您在一段代码中调用函数时,链接器的工作就是将调用函数的代码挂钩到实现该函数的代码。

答案 1 :(得分:1)

来源:here

“链接是指从多个目标文件创建单个可执行文件。在这一步中,链接器通常会抱怨未定义的函数(通常是main本身)。在编译期间,如果编译器找不到对于特定函数的定义,它只是假设函数是在另一个文件中定义的。如果不是这种情况,那么编译器就无法知道 - 它不会查看多个文件的内容另一方面,链接器可能会查看多个文件,并尝试查找未提及的函数的引用。“

换句话说:链接将所有已编译的库/二进制文件连接在一起,以便可以执行程序。