<分区>
我认为自己是一个相当有经验的程序员;然而,直到今天我还完全无法解释目标文件是什么,或者它包含什么。我不知道为什么 GCC 需要 -fPIC
选项来创建共享库。我不知道链接器真正是什么,也不知道它是如何工作的。我不知道 ranlib
、libtool
、nm
等到底做了什么。我知道如何反汇编二进制文件,但不确定如何解释我看到的内容。
简而言之,像许多程序员一样,我对编译过程的理解极其有限;在我看来,可用的文档似乎是为那些已经知道的人准备的,联机帮助页也是如此。
Google 也不是很有帮助,Wikipedia 也不是。因此,是否有关于将程序文本转换为可执行二进制文件的基本概念的入门级解释?