|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1. 概论
$ U# H, V5 p5 c% ?5 `1 ^8 [
- K9 u3 n9 e) ^每一个链接过程都由链接脚本(linkerscript, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.+ J' `' M4 m ~
连接器有个默认的内置连接脚本, 可用ld--verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响).
' z* M# _7 u: Q, j2 w1 L" Z! Z-T选项用以指定自己的链接脚本, 它将代替默认的连接脚本。你也可以使用<暗含的连接脚本>以增加自定义的链接命令.1 L) x. p- q2 U/ Y
以下没有特殊说明,连接器指的是静态连接器.7 b. F( ~) A/ @3 J! K! }+ G
$ q! |2 J. k4 C9 A* ]0 C
2. 基本概念7 `, k+ [( Y/ [/ l$ Y. \1 e
$ g* }9 |$ e9 ]9 u# ]! v链接器把一个或多个输入文件合成一个输出文件.
$ W1 D" [* a' ^1 N& x0 A输入文件: 目标文件或链接脚本文件.
! ?$ m& B' f6 d. N2 [输出文件: 目标文件或可执行文件.! z0 E. t# W& r) T h
; Y: j1 H8 U$ T) o% J7 A. v目标文件(包括可执行文件)具有固定的格式, 在UNIX或GNU/Linux平台下, 一般为ELF格式.
/ H+ W9 b ~, [/ ~$ ?7 T4 Y3 P, ^
" E8 ?9 f9 A- P- \5 @* ]
, }, N3 G4 ]- R; \; Y8 a2 F/ u$ T |
|