Chapter 7 Linking——1(CSAPP讀書筆記)

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......

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章