对于给定的ISA,各种语言的目标代码是否通用的链接器?或者是否各种语言需要单独的链接器用于底层平台?我理解链接器是一个系统软件,应该是所有人共有的?
答案 0 :(得分:0)
首先,您需要了解链接器链接目标代码。此对象代码是特定于机器(通常是操作系统)的。有几种不同的标准目标代码格式。链接器无法链接来自不同机器体系结构的对象代码。即使它可以做到这一点,它也不会执行。话虽这么说,只要编译器在同一台机器上运行,有时甚至是相同的操作系统,你几乎总能链接来自不同语言的目标代码。例如,如果您在C中创建一个程序并希望与它链接一个Pascal目标文件,这通常会起作用。最流行的目标代码格式称为COFF object code。 COFF代码几乎普遍是目标代码的公认标准格式。使用什么语言编译器生成代码并不重要(只要它来自相同的机器架构),大多数链接器将理解能够链接COFF文件。