ld链接脚本语法
本文最后更新于 2025年9月3日 下午
| 语法 | 说明 |
|---|---|
| ENTRY(symbol) | 将符号symbol的值作为入口地址(主函数)。ld中有多种方法指定入口地址,他们的优先级如下排列。 1. ld中的-e选项 2. 脚本中的ENTRY 3. _start符号 4. .text段第一个字节地址 |
| STARTUP(filename) | 将文件filename作为链接中的第一个输入文件 |
| SEARCH_DIR(path) | 库查找目录 |
| INPUT(file, file, …) | 将指定文件作为输入文件 |
| INCLUDE filename | 将指定文件包含进链接脚本(这是对脚本来说的,相当与在脚本中写了#include 加入其他脚本) |
| PROVIDE(symbol) | 在链接脚本中添加某个符号 |
| SECTIONS | 确定起始地址,描述链接输出段的名称及内容 |
此外,最基本的命令就是定义段的SECTIONS了,它的格式为:
1 | |
例如:1
2
3
4
5
6
7
8ENTRY(nomain)//以nomain函数作为程序入口
SECTIONS
{
. = 0x08048000 + SIZEOF_HEADERS;//以这个地址作为当前虚拟地址
tinytext : {*(.text) *(.data) *(.rodata) }
/DISCARD/ : {*(.comment)}//抛弃.comment段
|