xdata部分做什么?

问题描述 投票:-1回答:1

我有一个简单的hello world程序,并在我用/ headers标志转储后,我得到这个输出:

FILE HEADER VALUES
            8664 machine (x64)
               D number of sections
        5A3D287F time date stamp Fri Dec 22 18:45:03 2017
             48F file pointer to symbol table
              2D number of symbols
               0 size of optional header
               0 characteristics

Summary

           F .data
          A0 .debug$S
          2F .drectve
          24 .pdata
          B9 .text$mn
          18 .xdata

xdata部分到底做了什么以及包含什么?没有关于msdn的信息。

c++ c coff
1个回答
0
投票

重复的部分用于c ++模板之类的东西,编译器将在需要它的任何翻译单元中实例化模板,然后链接器将选择其中一个实例化(通常是第一次遇到)。

不太常见的是特定于编译器的功能,如Microsoft的__declspec(selectany),它允许多次定义变量,链接器将只选择其中一个定义并丢弃其余的定义。

gcc的ld脚本将采用所有.text *部分来创建链接可执行文件的最终.text。您可以检查这些脚本,以了解链接器如何从目标文件创建可执行文件。

© www.soinside.com 2019 - 2024. All rights reserved.