链接器中——链接脚本
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,链接脚本链接器根据说明具体的原则完成具体的工作?答案是:链接脚本。1链接脚本的意义链接脚本用于描述链接器处理目标文件和库文件的方式1.合并各个目标文件中的段2.重定位各个段的起始地址3.重定位各个符号
千家信息网最后更新 2025年12月02日链接器中——链接脚本
链接脚本
链接器根据说明具体的原则完成具体的工作?
答案是:链接脚本。
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 = 1024KRAM1 (!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函数为入口函数。
可以使用 ld --verbose 可以查看默认链接脚本的内容。
链接
地址
脚本
存储
函数
入口
代码
文件
标识
标识符
起始
目标
程序
空间
定位
合法
事项
关键
关键字
内存
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
cisp与网络安全法
铁岭换热站自动化控制软件开发
数据库日期转换时间戳
中小学生与网络安全公约
衢州市白领软件开发公司
网站如何建立数据库后台管理
虹口区领用软件开发市场
湖北省网络安全证书有问题
大学计算机网络技术需要买电脑吗
服务器的集群控制器启动不了
软件开发职位工资
服务器代码管理软件
服务器搭建空间
软件开发高手
辽宁专业软件开发哪里好
最具性价比家用服务器
uplay测试服务器
大连联盟互联网科技
代理服务器 win8
数据库安全工厂排行
TCGA数据库cnv分析
单车软件开发
加强网络安全策略配置
删除数据库本地发布报错
网络安全好学么
江苏服务器机房联系方式
简述jsp与数据库交互原理
美国网络安全股走势
网络安全法删除权
越秀软件开发哪里好