链接器中——链接脚本
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,链接脚本链接器根据说明具体的原则完成具体的工作?答案是:链接脚本。1链接脚本的意义链接脚本用于描述链接器处理目标文件和库文件的方式1.合并各个目标文件中的段2.重定位各个段的起始地址3.重定位各个符号
千家信息网最后更新 2026年10月31日链接器中——链接脚本
链接脚本
链接器根据说明具体的原则完成具体的工作?
答案是:链接脚本。
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安全错误
数据库的锁怎样保障安全
华服互联网科技靠谱吗
期待互联网科技
以房互联网科技
互联网科技的英文
易通互联网络科技有限公司
郑州华宇互联网科技
深圳期待互联网科技
大白互联网科技
中国互联网有什么科技含量
智腾互联网科技有限公司
互联网科技与大数据专业
山东有哪些互联网科技公司
上海科技产业互联网平台
智帮互联网科技公司最近动向
富国互联网科技002692
吉林省码上互联网科技电话
互联网科技收购价值
马化腾互联网科技教学
东风日产互联网科技公司叫什么
科技美学互联网 艺术
新华互联网科技学校
互联网中国科技
金融科技 互联网金融
互联网科技公司有哪些
卓越科技互联网 招聘
新华互联网科技2019
互联网金融科技公司干啥的
本届互联网博览会上的黑科技
朱啸虎曾投资哪些互联网科技企业
互联网科技如何创业