链接器文件中输入和输出部分之间的区别?

Difference between input and output sections in a linkerfile?

虽然在生成的二进制文件或 ELF 文件的上下文中可以清楚什么是节,但文档中的许多地方(与使用的编译器无关)将它们称为输入节或输出节。

它们之间有什么区别?

链接器使用目标文件(和可能的共享库)并输出 可执行文件或共享库。输入目标文件由命名的 部分 - .text.data.rodata.bss 等。输出文件也是如此。

它 是链接器工作的主要部分,用于组合所有 input 部分 来自所有输入目标文件的相同名称进入单个 output 部分 输出文件中的那个名字。例如。输入的所有 .text 部分 目标文件构成输出文件的 .text 部分。

如果链接器确定某些输入节是多余的,则可能会从输出文件中丢弃它们。