linker脚本文件的作用
linker脚本文件是用来控制link过程的文件,文件中包含内容为linker的处理命令,主要用于描述输入文件到输出文件(目标文件)时各个内容的的分布及内存映射等等。linker文件可以自己提供,也可以有ld过程自己生成,当使用缺省的linker脚本文件时,ld的命令选项将会对其产生一定的影响,GNU编译环境中可以通过-T命令指定相应的liner脚本,在使用-T时,指定的linker脚本文件会完全取代缺省linker文件。当作为缺省linker文件的补充时,不需要使用-T选项,而将linker脚本直接作为输入文件处理,此种情况下新的linker脚本文件不会替换缺省的脚本文件。下图为ARM版本的编译示例过程,可以看看ARM link在其过程中的作用
Linker脚本文件格式
linker脚本文件是使用文本格式进行编写的,由一连串的脚本命令构成。脚本由关键字、参数等组成,各个命令之间由分号分割。注释方式类同C语言,使用/*和*/的使用方式。文件名及格式等字符串可以直接使用,如果存在特殊字符可以加用双引号。linker脚本文件构成:linker脚本文件中包含一些变量符号,运算表达式,函数及相应命令组成。一个简单的示例如下: