close
把上課的一些心得跟一些知識放上來.
以防自己以後忘記,也可以跟更多人介紹一些觀念,如果有不對的地方也歡迎指正歐!
今天要介紹的是動態連結檔跟靜態連結檔.
在Windows中的動態連結檔是*.dll,靜態連結檔是*.lib
在Linux下的動態連結檔[shared object file ]是*.so,靜態連結檔是*.a
動態連結檔主要是在外部跟程式連結,把一個程式寫好以後,經過Compiler,Assembler跟Linker後.
會把他的位置連結起來,程式再呼叫動態連結檔去讀取資料.
靜態連結檔主要是在程式寫好以後,經過Compiler,Assembler跟Linker後.
一起包在一個執行檔裡面.所以產生的程式會很大.
使用動態連結檔的好處就是可以去做快速的更新,因為我們如果要修改一些參數或是增加一些資料.
只要更新動態連結檔就可以,凡舉Windows,跟線上遊戲都是這樣去更新的.
而靜態連結檔就沒辦法只更新連結檔了,因為在封裝程式時,已經把資料都包在同一個程式中.
無法做到這樣的更新.而會這樣做的程式通常也是不需要更新的^^.
上面提到的程式封裝,現在Linux最大宗的封裝格式為ELF,凡舉PS2,PS3,PSP都是用ELF的程式封裝技術歐!!
ELF(Executable and Linkable Format)
ELF(Executable and Linking Format)格式教學文件, #1: ELF 簡介
全站熱搜