|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1. 概论
1 b+ y5 ~7 f/ Q' `
' R$ s2 |; u/ g, i0 G每一个链接过程都由链接脚本(linkerscript, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.9 v' V* F: ]' {2 a" C4 l! Z/ U
连接器有个默认的内置连接脚本, 可用ld--verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响)./ ]3 f- G1 I5 D. [* S4 }
-T选项用以指定自己的链接脚本, 它将代替默认的连接脚本。你也可以使用<暗含的连接脚本>以增加自定义的链接命令.
' a* r; V: h# h% T以下没有特殊说明,连接器指的是静态连接器.# Z+ K2 G: c) }" \
- O( s) X, n0 I( g: S/ Y# p3 L1 P
2. 基本概念
. b4 }6 }: p$ y$ L$ D8 R
" E. r# o, \/ a- i$ {* s链接器把一个或多个输入文件合成一个输出文件.
; d0 I% A2 ]2 N2 p* m输入文件: 目标文件或链接脚本文件.
2 |" k3 F7 t% ~7 }/ p! `输出文件: 目标文件或可执行文件.
5 f" U" ], L! N( U8 X" c. p
* s9 a# G+ r: K7 d8 ]! i T- L8 S目标文件(包括可执行文件)具有固定的格式, 在UNIX或GNU/Linux平台下, 一般为ELF格式.# w/ @+ d: J$ k; ^; Z' j
( @4 j3 p# @$ y: c$ r' _- `- L
" p0 E6 _8 [* R! ~4 I/ p! }+ P T) e
|
|