.a 一堆 .o 合起來
.so shared objects
/include 裡面 放的 一堆 .h 檔案
告訴 compiler 說 這類型的檔案 存在於某個地方
.so 是在 link 的時候 把這項 library 給 link 起來
讓 這些可以用
例如 說 printf 這個 function 的 被實做出來 並且放在 某個 .so裡面
在 程式 run 的時候才會呼叫出來
就是這個ˇ道理
通常 會放在 lib/ 下面
轉自 http://bbs.chinaunix.net/thread-1332374-1-1.html
Archive 相當於某個人(這個可能是你也可能是別人)在編一個程序的時候中途留下了很多.o 文件沒用光。怎麼辦? Archive 起來,以後寫別的程序用得著。所以你的程序如果用了archive,連接到的是“靜態”庫,庫好像已經和你的程序化為一體,不分彼此。
Shared object 呢?你的心態又不一樣了。你寫程序,寫著寫著發現很多程序都要用到同一段代碼,怎麼辦?直接copy 過去省事啊,不過維護起來麻煩。用 archive?也還行,只是有點浪費空間了。那怎麼辦?一拍大腿,點子來了,share 一下這個object,這樣既方便維護,又節省空間。
現實環境裡兩種情況都有,自己想想清楚每一種的目的是要幹啥就行了。
沒有留言:
張貼留言