Static linking
Object file Relocatable object file Executable object file Shared object file: A special type of relocatable object file
現在的類unix系統主要使用的object file 類型爲ELF(Unix Executable and Linkable Format)。此文件類型中,頭文件的主要section是這樣的:
需要注意的主要是.text,.data,.bss三個段。其中,在c語言obj文件的鏈接過程中,Linker僅僅關心全局變量,局部變量交給程序運行時的stack進行管理。還需注意的部分是Local linker symbol != Local program symbol可以說二者有本質上的區別。在對於各個symbol所佔的section判斷時,是不是可以簡單的看做:Local program symbol不在.symtab中,Global symbol需要區分是不是extern,是不是初始化的。初始化的符號存在於.data段中,未初始化的存在於.bss段中。P.S. .bss可以方便的記憶爲 best save space ( ̄ー ̄)另外c中的static關鍵字可以理解爲是該文件對外部將此變量設置的封裝,即所謂的訪問權限(public,private......神馬的),一個c文件可以看作一個單獨的模塊。To be continued......