语法 说明
ENTRY(symbol) 将符号symbol的值作为入口地址(主函数)。ld中有多种方法指定入口地址,他们的优先级如下排列。 1. ld中的-e选项 2. 脚本中的ENTRY 3. _start符号 4. .text段第一个字节地址 5. 0
STARTUP(filename) 将文件filename作为链接中的第一个输入文件
SEARCH_DIR(path) 库查找目录
INPUT(file, file, …) 将指定文件作为输入文件
INCLUDE filename 将指定文件包含进链接脚本(这是对脚本来说的,相当与在脚本中写了#include 加入其他脚本)
PROVIDE(symbol) 在链接脚本中添加某个符号

此外,最基本的命令就是定义段的SECTIONS了,它的格式为:

SECTIONS
{
secname : { contents }
}
secname是输出文件的对应段,contents是输入文件的段

其中contents的语法为: filename(sections)
表示要把某个文件中的某个段添加到secname中

file1.o(.data): 将file1.o的.data段添加到输出文件的对应段中
*(.data): 将所有输入文件的.data段添加到对应段中。此外,还可以使用其他正则表达式

例如:

ENTRY(nomain)//以nomain函数作为程序入口

SECTIONS
{
. = 0x08048000 + SIZEOF_HEADERS;//以这个地址作为当前虚拟地址
tinytext : {*(.text) *(.data) *(.rodata) }
/DISCARD/ : {*(.comment)}//抛弃.comment段
|