ELF文件和bin文件有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (261)

编译器生成的最终图像包含bin文件和扩展加载程序格式ELF文件,两者之间的区别是什么?

提问于
用户回答回答于

Bin文件是一个没有内存修改或重定位的纯二进制文件,很可能它有明确的指令要加载到特定的内存地址。

ELF文件是可执行的可链接格式,它由一个符号查找表和可重定位表组成,也就是说,它可以由内核加载到任何内存地址,并且自动地将所有使用的符号调整为与该内存地址的偏移量被装入。通常,ELF文件有很多部分,比如'data','text','bss'等等。

用户回答回答于

bin文件只是进入ROM的位和字节,或者将运行程序的特定地址。你可以直接获取这些数据并直接加载它,你需要知道基地址是什么。

一个elf文件包含bin信息,但它被许多其他信息包围,可能的调试信息,符号可以区分二进制文件中的代码和数据。允许多个二进制数据块。告诉你有多少二进制文件,有多少bss数据需要初始化为零。

elf文件格式是一种标准,arm会发布其对标准的增强/变体。我建议每个人都写一个elf解析程序来理解它里面的内容。

所属标签

可能回答问题的人

  • EatRice

    16 粉丝0 提问143 回答
  • 成都加米谷大数据

    11 粉丝0 提问11 回答
  • 富有想象力的人

    5 粉丝0 提问344 回答
  • 最爱开车啦

    9 粉丝503 提问1.6K 回答

扫码关注云+社区

领取腾讯云代金券