我有一个简单的<table>
<tr>
<td>content 1</td>
</tr>
</table>
<table>
<tr>
<td>content 2</td>
</tr>
</table>
程序,在 dumpbin 后面带有 / headers 标志,我得到了这个输出:
hello world
xdata部分究竟做了什么以及它包含什么?没有关于msdn的信息。
答案 0 :(得分:1)
供以后参考:
后缀“ $”用于排序。鉴于: -.sec $ z -.sec $ data -.sec $ a
在将这些节合并到可执行文件之前先对其进行排序(因此,首先是.sec $ a,然后是数据,然后是z),这可用于为pe节创建开始/结束符号。
答案 1 :(得分:0)
重复的部分用于c ++模板之类的东西,编译器将在需要它的任何翻译单元中实例化模板,然后链接器将选择其中一个实例化(通常是第一次遇到)。
不太常见的是特定于编译器的功能,如Microsoft的__declspec(selectany),它允许多次定义变量,链接器只会选择其中一个定义并丢弃其余的定义。
gcc的ld脚本将采用所有.text *部分来创建链接可执行文件的最终.text。您可以检查这些脚本,以了解链接器如何使用目标文件创建可执行文件。