假设我有一个C源文件,它不包含对任何其他文件的任何引用。您可以假设它只包含 -
int main(void) {
int a=5, b=10;
}
此源文件是否会转到链接器?在这种情况下,链接器的任务是什么?
答案 0 :(得分:4)
这将是因为将调用链接器以形成可运行的可执行文件。无论是一个源文件还是多个源文件,每个翻译单元将首先编译到目标文件,然后链接到C的运行时以形成可执行程序。因此,即使您只看到一个源文件,它仍然通过链接器链接到运行时。
答案 1 :(得分:2)
如果您不使用任何显式库,也始终需要链接器。无论如何,任何程序都需要在他的二进制文件中包含OS基本启动指令,并且链接器将它们添加到您的可执行文件