靜態(tài)庫是在編譯鏈接時被靜態(tài)地鏈接到可執(zhí)行文件中,而動態(tài)庫是在運行時被動態(tài)地加載到內(nèi)存中。
靜態(tài)庫的代碼會完整地被復(fù)制到可執(zhí)行文件中,每個可執(zhí)行文件都會包含一份完整的靜態(tài)庫代碼,而動態(tài)庫的代碼只會被保存一份在磁盤中,多個程序可以共享同一份動態(tài)庫。
靜態(tài)庫文件體積通常比較大,因為會包含完整的代碼,而動態(tài)庫文件體積較小。
靜態(tài)庫的加載速度比較快,因為代碼已經(jīng)被鏈接到可執(zhí)行文件中,而動態(tài)庫的加載速度稍慢。
更新靜態(tài)庫需要重新編譯整個可執(zhí)行文件,而更新動態(tài)庫只需替換動態(tài)庫文件即可。
動態(tài)庫可以在運行時加載和卸載,可以減少內(nèi)存占用,而靜態(tài)庫的代碼會一直存在于可執(zhí)行文件中,無法卸載。