|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1. 概论
6 O( e/ |3 ?, v% M3 y: e* ~: G5 L g% i/ U2 \2 ?3 Q
每一个链接过程都由链接脚本(linkerscript, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情./ R: f4 g/ ^7 v8 a# c4 l2 X; J+ f
连接器有个默认的内置连接脚本, 可用ld--verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响).1 I% i* }5 j0 k
-T选项用以指定自己的链接脚本, 它将代替默认的连接脚本。你也可以使用<暗含的连接脚本>以增加自定义的链接命令.
8 _' ]0 z: `8 Z7 \* F; N以下没有特殊说明,连接器指的是静态连接器.& i8 ^7 O A* t) W
' c7 N! W; D! e7 q! q9 R
2. 基本概念+ m% h. ~" b* V& c2 e- C
* x \0 ^6 W. X2 t
链接器把一个或多个输入文件合成一个输出文件.1 n. N) y* Q, h: i2 c
输入文件: 目标文件或链接脚本文件. 5 b( [5 m9 d- b
输出文件: 目标文件或可执行文件.6 x& Q9 I* W Y. C1 j
9 H9 }" ?- y3 d/ O目标文件(包括可执行文件)具有固定的格式, 在UNIX或GNU/Linux平台下, 一般为ELF格式.
4 D9 Y- H l7 x; T" g
- ]8 j" u/ }1 }& l2 r% h$ S c* j) U& o4 E5 h% o* d% J. W
: y1 F+ B6 i/ {$ N! F( n+ O# r
|
|