用 gcc 自製 Library
斯斯有三種。 Library分成三種,static、shared與dynamically loaded。 原文: [撰碼] 自製 gcc Library 作者: cole945@bbs.cse.yzu.edu.tw 1. Static libraries Static libraries用於靜態連結,簡單講是把一堆object檔用ar(archiver) 包裝集合起來,檔名以 `.a' 結尾。優點是執行效能通常會比後兩者快, 而且因為是靜態連結,所以不易發生執行時找不到library或版本錯置而 無法執行的問題。缺點則是檔案較大,維護度較低;例如library如果發 現bug需要更新,那麼就必須重新連結執行檔。 1.1 編譯 編譯方式很簡單,先例用 `-c' 編出 object 檔,再用 ar 包起來即可。 ____ hello.c ____ #include void hello(){ printf("Hello "); } ____ world.c ____ #include void world(){ printf("world."); } ____ mylib.h ____ void hello(); void world(); $ gcc -c hello.c world.c /* 編出 hello.o 與 world.o */ $ ar rcs libmylib.a hello.o world.o /* 包成 limylib.a */ 這樣就可以建出一個檔名為 libmylib.a 的檔。輸出的檔名其實沒有硬性限制, 但如果想要配合 gcc 的 '-l' 參數來連結,一定要以 `lib' 開頭,中間是你要 的library名稱,然後緊接著 `.a' 結尾。 1.2 使用 ____ main.c ____ #include "mylib.h...