wgs13579 发表于 2010-08-23 14:41

请教一个关于lds链接脚本的问题

SECTIONS
{
   .text : {
          *(.text) ;
      }
    .data:
          {
             *(.data);
          }
}

上面是一个链接脚本的简单示例,其中*(text)表示所有文件的.text段,*(.data)表示所有文件的.data段,那么我想请问,一个需要链接的文件的.text和.data这些段是如何确定的?

EricFisher 发表于 2010-08-23 17:25

大体上:
目标文件会有一个section头,记录了许多section的信息,链接后,会将section合并成segment,并在segment头里记录它们的信息。

wgs13579 发表于 2010-08-23 17:37

大体上:
目标文件会有一个section头,记录了许多section的信息,链接后,会将section合并成segment,并在 ...
EricFisher 发表于 2010-08-23 17:25 http://linux.chinaunix.net/bbs/images/common/back.gif

呵 谢谢~~~你说的目标文件时最后生成的ELF文件么?

但是我是想知道链接所需的源文件中,各个section是如何确定的

readkernel 发表于 2010-08-23 17:46

源程序中没有明确说明时
编译器默认把代码(函数)都放到.text,全局变量都放到.data

prolj 发表于 2010-08-23 18:11

搭车问,我就编一个大的bin镜像,里面所有内容的地址都是确定的,现在我想指定某个变量的地址是0x111咋弄啊?
页: [1]
查看完整版本: 请教一个关于lds链接脚本的问题