Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327887
  • 博文数量: 130
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 554
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-19 19:24
文章分类

全部博文(130)

文章存档

2016年(31)

2015年(16)

2014年(13)

2013年(70)

分类: LINUX

2014-07-13 23:54:57

链接过程是整个可执行文件生成最重要的环节。开始学习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) |
0

上一篇:程序员编译学习

下一篇:动态链接学习

给主人留下些什么吧!~~