链接过程是整个可执行文件生成最重要的环节。开始学习c语言的时候,对程序的编译链接生成可执行文件,是保持着一种神秘感。随着
最近学习的深入,再次读程序员的自我修养资料。对程序链接过程中,需要程序生成哪些段名以及程序的入口函数,以及程序的虚拟地址
都是可以通过ld链接选项指定,或者通过ld script脚本来完成。
下面简单来给出一个ld script:
ENTRY(FUNCTION_NAME) /* 指定程序入口函数名 */
SECTIONS
{
. = 0X08480000 + SIZEOF_HEADERS; /* 设置当前段虚拟地址为 0x08480000 + 输出文件头大小 */
/* 输入段名与输出段名之间的转换 */
out_section_name : { input_section_name1 input_section_name2 ...}
/* 表示需要丢弃掉输入段 */
/DISCARD/ : { input_section_name1 .. }
}
ld scripte 语法:
ld script语法分为两种:1.赋值语句,该语句之间必须使用" ; "(分号)进行分隔。2.命令语句,该语句之间可以使用换行来进行分隔。
3.注释使用c语言风格/**/,4.命令语句的输入段名支持正则表达式,例如使用 *通配符。
阅读(1480) | 评论(0) | 转发(0) |