链接器中链接脚本的作用-创新互联

链接器中链接脚本的作用是什么?一般大家对链接脚本的了解可能停留在概念的层面上,而对于链接脚本的作用了解相对较少。今天就跟大家聊聊链接脚本的作用和使用方法。

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的蜀山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

1链接脚本的意义

链接脚本用于描述链接器处理目标文件和库文件的方式
1.合并各个目标文件中的段
2.重定位各个段的起始地址
3.重定位各个符号的最终地址
链接器中链接脚本的作用

SECTIONS         // 关键字,描述各个段在内存中的布局
{
   .text 0x08048400:    // 代码段起始地址
   {
     *(.text)         // 所有文件的代码段合并进入可执行程序
   }

   . = 0x01000000;     // 设当前地址

   s1 = .;         // 标识符S的存储地址

   . += 4;

   s2 = .;

   .data 0x0804a800:
   {
     *(.data)
   }

   .bss :
   {
     *(.bss)
   }
} 

注意事项:
1.各个段的链接地址必须符合具体的平台规范
2.链接脚本中能够直接定义标识符并指定存储地址
3.链接标本中能够指定源代码中的标识符的存储地址
4.在Linux中,进程代码段(.text)的合法起始地址为【0x08048000,0x08049000】

2 MEMORY的使用

默认情况下:链接器认为程序应该加载进入同一个个存储空间。
嵌入式系统中,如果存在多个存储空间,必须使用MEMORY进行存储区域定义。
MEMORY 的属性定义:
链接器中链接脚本的作用

MEMORY
{
RAM0 (WX) : ORIGIN = 0X20000000, LENGTH = 1024K
RAM1 (!X) : ORIGIN = 0X04000000, LENGTH = 256K 
}
SECTION
{
   .text :  { *(.text) } > RAM0
   .data : { *(.data) } > RAM0
   .bss  : { *(.bss)  } > RAM1
} 

3 ENTRY 命令指定入口点

ENTRY(program)

SECTIONS
{
   .text 0x08048400:
   {
     *(.text)
   }
}

这里有一点需要说明,在没有指定入口函数时,默认的入口函数时_start函数,原因在于链接器使用了默认的链接脚本,内部明确指明_start函数为入口函数。

看完上述内容,你们对链接器中链接脚本有进一步的了解吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

本文名称:链接器中链接脚本的作用-创新互联
文章起源:https://www.cdcxhl.com/article10/cspido.html

成都网站建设公司_创新互联,为您提供手机网站建设微信公众号网站维护网站排名品牌网站制作软件开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设