lds ----linux下的通用链接脚本
ELF(Executable and Linkable Format)格式,linux平台下十分常见的可执行、可连接文件。 输出section的丢弃: 例子,.foo { *(.foo) },如果没有任何一个输入文件包含.foo section,那么连接器将不会创建.foo输出section。但是如果在这些输出section描述内包含了非输入section描述命令(如符号 赋值语句),那么连接器将总是创建该输出section。 有一个特殊的输出section,名为/DISCARD/,被该section引用的任何输入section将不会出现在输出文件内,这就是DISCARD的意思吧。如果/DISCARD/ section被它自己引用呢?想想看。 /DISCARD/ : { *(.discard) } SECTIONS { . = 0x00; //链接定位器在0x00处 .text : { *(.text) } //所有文件的代码段链接成一个.text的代码段 .rodata ALIGN(4) : {*(.rodata)} .data ALIGN(4) : { *(.data) } //所有文件的数据段链接成一个.text的数据段,4字节对齐 .bss ALIGN(4) : { *(.bss) *(COMMON) } } //说明:.bss段---链接完后,占用的内存释放,不同于