靜態編譯與動態編譯的區別:
靜態編譯就是在編譯時,把所有模塊都編譯進可執行文件里,當啟動這個可執行文件時,所有模塊都被加載進來;
動態編譯是將應用程序需要的模塊都編譯成動態鏈接庫,啟動程序(初始化)時,這些模塊不會被加載,運行時用到哪個模塊就調用哪個
靜態庫
優點:
代碼的裝載速度快,執行速度也比較快
缺點:
- 程序體積會相對大一些
- 如果靜態庫需要更新,程序需要重新編譯
- 如果多個應用程序使用的話,會被裝載多次,浪費內存。
動態庫:
動態鏈接庫:在應用程序啟動的時候才會鏈接,所以,當用戶的系統上沒有該動態庫時,應用程序就會運行失敗
優點:
多個應用程序可以使用同一個動態庫,而不需要在磁盤上存儲多個拷貝
缺點:
由于是運行時加載,可能會影響程序的前期執行性能