对象文件,链接器,存档等:我在哪里可以找到所有这些的入门级解释?

我认为自己是一位经验丰富的程序员;但是,到今天我完全无法解释目标文件是什么,或者它包含什么.我不知道为什么GCC需要-fPIC选项来创建共享库.我不知道链接器到底是什么,或者它是如何工作的.我不知道ranlib,libtool,nm等是什么.我知道如何反汇编二进制文件,但我不知道如何解释我所看到的.

简而言之,像许多程序员一样,我对编译过程的理解非常有限;在我看来,可用的文档面向已知的人,手册页也是如此.

谷歌也没有太大帮助,维基百科也没有.因此,对于将程序文本转换为可执行二进制文件的基础概念是否存在入门级解释?

最佳答案 你想要John Levine的书籍“连接器和装载器”,其中未经修正的证据可以在
his website免费找到(但我建议找到出版的书).代码生成后构建链中的所有内容都清楚地涵盖了很多示例.我不能高度推荐它.

点赞