函式庫分為靜態庫和動態庫兩種
靜態庫在程式編譯是會被鏈結到目標**中,執行時不再需要
動態庫在程式執行時並不會被鏈結,在程式執行時才被載入
靜態庫製作:
1.自己編寫源**.c
2.對製作的原始檔進行只編譯不鏈結.o gcc. -c ***.c -o ***.o
3.對目標檔案進行打包 ar -rc libyyy.a(yyy庫名)
4.對使用目標庫的檔案進行編譯 gcc main.c -lyyy -l(後置路徑)
動態庫製作:
1.自己編寫源**.c
2.對製作的原始檔進行只編譯不鏈結.o gcc. -c ***.c -o ***.o
3.對目標檔案進行打包 gcc -fpic -shanred ***.o libyyy.so(yyy庫名)
4.對使用目標庫的檔案進行編譯 gcc main.c -lyyy -l(後置路徑)
程式設計 函式庫 動態庫 靜態庫
通常被認為是函式庫,說白了就是乙個檔案,檔案中包含大量的函式實現的二進位制 指令 比如我們所使用printf函式 動態庫 鏈結動態庫生成可執行程式,並沒有把庫中函式的實現指令直接拿過來寫入可執行程式中,而是在可執行程式中記錄了庫中函式的符號資訊。優缺點 生成可執行程式比較小,執行時動態庫被載入到記憶...
Linux的靜態函式庫和動態函式庫
一 在linux中,有兩種函式庫,以 so字尾命名的是動態函式庫,以 a字尾命名的是靜態函式庫 二 靜態函式庫 1 靜態函式庫是多個目標檔案 o的集合 2 可以使用ar命令 archiver 來生成.a檔案 gcc c part a.c gcc c part b.c ar r libtest.a p...
靜態函式庫與動態函式庫的設計
函式庫存放位置 linux應用程式使用的主要函式均放在 lib和 usr lib目錄下,其中採用 so.命名的是動態函式庫,而以 a方式命名的是靜態函式庫。靜態函式庫的特點 程式所要用到的庫函式 在鏈結時全部被copy到程式中。導致的問題 如果有多個程序在記憶體中同時執行,並且使用了相同的函式庫,那...