2010年12月9日 星期四

static lib (.so) 製作

心情不好來寫點筆記....

這個 .so 很類似 windows 下的 DLL, 不一樣的是, windows 下被 link 的要是 .lib (雖然有些工具可以從 DLL 裡拆出 lib 檔出來, 但不一定 100% work) 才行, .so 是可以直接被 link 使用.

製作方法參考這裡, 只有幾點要注意..
1. soname 要是 lib 開頭如 libtest, 也就是說不管取什麼名字, 前面都必須要是 lib 開頭..
2. gcc 在最後做 link 時, 加上 -l???? 才可以找的到該 .so 裡的東西, 如上例就是 -ltest.
3. 做出來的 .so 一般都要擺在 /lib 或 /usr/lib 或 /usr/local/lib 裡, 或是用 export 指令去改:
export LD_LIBRARY_PATH=./

這樣去聯結自己的 .so library 檔案使用.

後記: .so (static object ) 跟 .DLL 當然是不一樣的, DLL 會把一些不用的 function 砍砍掉, .so 會全部留著, 外面能不能 link 的到那是你家的事 =_=

沒有留言: