有没有办法强制 gcc
或 ld
将代码段放在输出 ELF 格式文件的末尾?
也许我可以强制他们不生成除 .text
之外的任何其他部分,例如,如果我在 .data、.rodata、.bss
和其他部分?
最佳答案
对我有用的脚本的最小版本如下所示:
ENTRY(_start)
SECTIONS
{
.data : { *(.data) }
.bss : { *(.bss) *(COMMON) }
.text : { *(.text) }
}
但在我进行了更多研究之后 (docs here),我将此脚本替换为默认脚本 (ld --verbose
)。然后我将代码部分放在冗长脚本的最后,它运行得很好。
关于linux - 在 ELF 中交换部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882899/