靜態庫動態庫

2021-07-24 06:14:42 字數 466 閱讀 8299



靜態庫動態庫

靜態庫:是在執行程式之前就已經加入到執行**中,成為執行程式的一部分來執行的,字尾名:.a

動態庫:是在執行程式啟動時載入到執行**中,字尾名:.so

靜態庫和動態庫區別:

動態庫編譯速度慢,執行速度快,但是生成的程式體積較大,占用記憶體,然而動態庫較易公升級,就布局而言,動態庫**不易布局,執行效率低,靜態庫的特徵與其相反『

靜態庫動態庫的製作過程:

gcc -c add.c 形成.o檔案

ar rcs -libadd.a  add.o

gcc main.c -ladd

gcc main.c -ladd -l.  -o main 

./main

gcc -shared  -f』pic -o  libadd1.so  add.c

gcc main.c  / 絕對路徑 / libadd1.so  -o  add

靜態庫動態庫

我們使用ls l的時候看到的除了看到檔名,還看到檔案的元資料 擁有的許可權 硬鏈結數 檔案所有者 組 大小 檔案最後修改時間 檔名ls l讀取儲存在磁碟上的檔案資訊,然後顯示出來 其實這個資訊除了通過這種方式來讀取,還有乙個sata命令能夠看到更多的資訊 這裡寫描述 上面的執行結果有幾個資訊需要解釋...

靜態庫 動態庫

學習程式設計,要對編譯鏈結過程了然如胸。在鏈結階段,有兩種鏈結方式 靜態鏈結和動態鏈結。兩者最大的區別在於鏈結的時機不一樣,靜態鏈結是在形成可執行程式前,而動態鏈結的進行則是在程式執行時,下面來詳細介紹這兩種鏈結方式。一 靜態鏈結 然後使用ar工具生成a庫,指令如下 ar命令詳細介紹可以參考這篇部落...

靜態庫,動態庫

我想多說關於程式編譯的一些規範和方法,一般來說,無論是c c 還是pas,首先要把原始檔編譯成中間 檔案,在windows下也就是 obj 檔案,unix下是 o 檔案,即 object file,這個動作叫做編譯 compile 然後再把大量的object file合成執行檔案,這個動作叫作鏈結 ...