考虑下列生成二进制的过程,编译器被用来生成单个单元的目标代码,链接器被用来将多个目标单元合并成一个程序二进制,链接器如何改变指令和数据到内存地址的绑定?需要什么信息从编译器传递给链接器,以协助完成链接
来源:互联网 发布:数据挖掘r语言实战微盘 编辑:程序博客网 时间:2024/05/29 08:18
考虑下列生成二进制的过程,编译器被用来生成单个单元的目标代码,链接器被用来将多个目标单元合并成一个程序二进制,链接器如何改变指令和数据到内存地址的绑定?需要什么信息从编译器传递给链接器,以协助完成链接器的内存绑定
百度了好多个个个都不写答案
那就由我来表态吧:
答案:编译器需要传递每个编译后的二进制代码的段表,链接器将所有二进制文件的段表合并,这就是链接过程!!!
之后链接器连接后的可执行文件怎么在内存里面完成实际的内存地址绑定呢?(这里说的实际内存可能是物理内存地址,也可能只是页虚拟地址)
这很简单,只要将分配到的内存地址把段表(一张内存映射表)的value补全可以了。这就是内存绑定过程。
0 0
- 考虑下列生成二进制的过程,编译器被用来生成单个单元的目标代码,链接器被用来将多个目标单元合并成一个程序二进制,链接器如何改变指令和数据到内存地址的绑定?需要什么信息从编译器传递给链接器,以协助完成链接
- 编译器和链接器的工作过程
- 编译器和链接器
- 编译器和链接器
- C++程序的父亲母亲:编译器和链接器
- C程序编译器和链接器
- 目标文件的链接
- 关于编译器和链接器
- 编辑器、编译器和链接器
- 编译器和链接器的工作原理和流程
- 编辑器、编译器和链接器的概念和区别
- 禁止链接器在生成目标程序时自动去除静态链接库中未调用函数和变量
- 一个Swing程序,用来判断一个URL页面内包含的好链接和坏链接数目
- Microsoft编译器和动态链接器的命令行参数详解
- 编译器选项的查询和编译链接器介绍
- visual studio编译器和链接器使用的环境变量
- Microsoft C 和 C++ 编译器与链接器的参数
- 编译器 编译链接程序生成全过程。
- 测试用例设计方法——边界值分析法
- Codeforces Round #353 (Div. 2) E. Trains and Statistic dp 贪心,DP,线段树
- hive sql 优化
- 信息熵
- SlidingTabLayout在滑动时修改标题字体颜色,也可在滑动时设置滑动条宽度。
- 考虑下列生成二进制的过程,编译器被用来生成单个单元的目标代码,链接器被用来将多个目标单元合并成一个程序二进制,链接器如何改变指令和数据到内存地址的绑定?需要什么信息从编译器传递给链接器,以协助完成链接
- iOS学习笔记-064.手势解锁
- 加入第三方sdk后包冲突引起的找不到符号 commitNow() ,commitNowAllowingStateLoss()系列问题的解决
- debain安装lyx2.2.2,以及报错整理:
- 阻塞队列BlockingQueue
- ViewPager实现无限循环的广告位
- C语言的字符数组(字符串)的定义与初始化
- 水平集算法原理介绍
- [Bootkit]开源Bootkit技术(一)目录&引言