链接器脚本符号

时间:2015-06-10 04:02:36

标签: c++ linker

我已阅读并查看了很多示例,但我仍然遇到问题。 所以我拥有的是

SECTIONS
{
    _kernel_head_address  =  12;

    .text   0x00400400 :
    {
        code = .; _code = .; __code = .;
        *(.text)
        . = ALIGN(1024);
    }

    ...

    _kernel_tail_address =    .;

    _kernel_size         =    _kernel_tail_address - _kernel_head_address;

}

符号已定义,我可以检索C ++代码中符号的地址。但是,所有三个符号都是用连续的地址x0000,x0004,x0008定义的,当我查看文件的objdump时,我可以看到它们都是在输出文件的.bss部分中定义的。 因此,似乎链接器忽略了脚本中定义符号的位置,并简单地将它们全部分配在.bss部分中,这与我看到的所有示例相反。 我做的事情显然是错的吗?我的开发环境中有什么东西可以导致这种情况吗?非常感谢任何指针,我花了最近4天的时间,我感到难过。

0 个答案:

没有答案