【问题标题】:Resource to understand compilation, loader, linker and process structure了解编译、加载器、链接器和进程结构的资源
【发布时间】:2012-03-01 02:55:10
【问题描述】:

我想了解编译和执行 C 程序所涉及的整个过程。具体来说,如何将 C 源文件和头文件编译为目标代码并与库链接以生成ELF 可执行文件,以及如何将 ELF 加载到内存中? 我还想了解内存进程的结构。 (我并不是专门寻找从编译器书籍中获得的编译步骤,例如 Aho,Ulman。)

详细了解这一点的最佳资源(在线/书籍)是什么?

【问题讨论】:

标签: c assembly compiler-construction linker loading


【解决方案1】:

我最近必须了解所有这些。一本书详细说明了您的要求: Computer Systems: A Programmer's Perspective。特别是第 7 章,其中讨论了以下主题:

  • 编译器驱动程序
  • 静态链接
  • 目标文件
  • 可重定位目标文件
  • 符号和符号表
  • 符号解析
  • 搬迁
  • 可执行对象文件
  • 与共享库的动态链接
  • 从应用程序加载和链接共享库
  • 位置无关代码 (PIC)
  • 对象文件操作工具

【讨论】:

  • 将在库中查找它。感谢您的建议。
  • @Steve "什么是图书馆?" – 你应该在一个新问题中提出这个问题。
【解决方案2】:

维基百科是一个好的开始。它也有许多指向其他网站的链接。

http://en.wikipedia.org/wiki/Executable_and_Linkable_Format

当然还有规范:http://refspecs.freestandards.org/elf/elf.pdf

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 2010-09-07
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多