这是一个创建于 3131 天前的主题,其中的信息可能已经有所发展或是发生改变。
linker 脚本内容如下,目的是想实现,位于 marker1 节中的变量放在 data 之前, marker2 节中的变量位于 bss 之后。但是最终结果只跟文件输入顺序有关。。。有人知道如何是好吗?
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(main)
SECTIONS
{
. = 0;
.text : { *(.text .text.*) }
.marker1 : { *(.marker1) }
.data : SUBALIGN(4) { *(.data .data.* .gnu.linkonce.d.*) }
.bss : { *(.bss .bss.*) }
.marker2 : { *(.marker2) }
/* Strip unnecessary stuff */
/DISCARD/ : { *(.comment .note .eh_frame) }
}
3 条回复 • 2015-11-23 20:11:03 +08:00
|
|
1
pkking 2015-11-23 19:27:15 +08:00
首先需要确认下 脚本是否生效
看看 objdump -h 的输出呢
|
|
|
3
tewilove 2015-11-23 20:11:03 +08:00
你说生不生效,那当然是生效的啦, marker 是我刚加进去的。 expected marker1 在 data 前, actual marker1 在 bss 后。链接的时候 marker 所在.o 文件是写在最后的。
|