2013年10月31日 星期四

.a .so

.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,這樣既方便維護,又節省空間。

現實環境裡兩種情況都有,自己想想清楚每一種的目的是要幹啥就行了。

沒有留言:

張貼留言