動態庫與靜態庫小看法

2021-09-30 00:07:03 字數 601 閱讀 7460

對比動態庫與動態庫區別和個人看法

動態庫靜態庫

檔名windows:*.dll

linux:*.so

macos*.dylibwindows:*.lib

linux:*.a

macos*.a*.framework

可執行檔案體積

較小較大

記憶體使用

較小較大

執行速度

較慢較快

動態庫雖然可以不用打包到安裝包中,而依賴系統中的動態庫,似乎是一種不錯的方案,縮小安裝包的大小。但事實上大多數qt程式都會帶上動態庫一起打包。這樣一來反而比靜態庫鏈結的程式更大。因為程式鏈結靜態庫時只會鏈結程式用到的**。

修改了動態庫**,如果沒有及時更新則會導致程式可能無法執行

使用某些開源協議的**生成的靜態庫鏈結在程式中可能存在違反開源協議如(gpl,lgpl等)。

靜態庫與動態庫

linux下靜態庫 a 的例子 mylib.h 位於include資料夾下 ifndef mylib h define mylib h int add int a,int b endif mylib.cpp 位於lib資料夾中 include mylib.h int add int a,int b ...

靜態庫與動態庫

庫本質上是一種可執行的二進位制 可以被作業系統載入 linux和windows的庫是不相容的 庫可以分為靜態塊和動態庫,二者的不同點在於 被載入的時刻不同。靜態庫 在程式編譯時會被連線到目標 中,程式執行時不再需要改靜態庫,體積較大,一般應用與移植過程中在宿主機上編譯的 靜態庫檔名的命名規範是以li...

靜態庫與動態庫

1.靜態庫 工程在呼叫靜態庫時,複製靜態庫,源 加長,不節省程式空間。字尾名.a 優點 程式設計後不需要再依賴庫 以空間換時間 建立靜態庫 gcc c 原始檔.c ar rcs rcu 靜態庫名 目標檔案1 目標檔案2 rc 靜態庫不存在,就建立該庫檔案 s 更新靜態庫 使用 gcc o file ...