关于可重定位目标文件

chenzq87 2010-01-28 02:37:33
一个c/c++程序要经过预处理,编译,汇编和连接四步生成可执行文件,第三部汇编后生成的 .o 文件即OBJ文件,也称为可重定位目标文件,请问这里的可重定位该如何理解,谢谢~
...全文
526 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjliu1984 2011-08-08
  • 打赏
  • 举报
回复 7
汇编器所产生的目标文件至少包括三个区,即文本区(text),数据区(data)和bss区。文本区一般包括程序的代码和常量,数据区通常存放全局变量等内容,bss区用于存放未初始化的变量或作为公共变量存储空间。在一个目标文件中,其text区从地址0开始,随后是data区,再后面是bss区。而要运行程序,必须装载到内存中,所以这些区的地址需要在内存中重新安排,也就是重定位。
james_hw 2010-01-28
  • 打赏
  • 举报
回复
没想过,不过可能是连接的顺序不一样的意思吧
z569362161 2010-01-28
  • 打赏
  • 举报
回复
可重定位该如何理解?

去看汇编
z569362161 2010-01-28
  • 打赏
  • 举报
回复
OBJ文件一般是程序编译后的二进制文件,在通过链接器和资源文件链接就成exe文件了。
pengzhixi 2010-01-28
  • 打赏
  • 举报
回复
就是说文件里面的代码段和数据的地址还没有最终确定。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧