next up previous contents
Next: ldd 函數庫工具 Up: Makefile 函數庫 Previous: Makefile 函數庫   Contents

函數庫

  1. 靜態函數庫:
    1. 附檔名:通常為 libxxx.a 的類型;
    2. 編譯行為:整個函數庫的資料被整合到執行檔中,所以利用編譯成的檔案會比較大。
    3. 獨立執行的狀態:編譯成功的可執行檔可以獨立執行,而不需要再向外部要求讀取函數庫的內容。
    4. 升級難易度:函數庫升級後,連執行檔也需要重新編譯過一次,將新的函數庫整合到執行檔當中。
  2. 動態函數庫:
    1. 附檔名:通常為 libxxx.so 的類型;
    2. 編譯行為:編譯時執行檔中僅具有指向動態函數庫所在的指標而已,並不包含函數庫的內容,所以檔案會比較小。
    3. 獨立執行的狀態:不能被獨立執行,程式讀取函數庫時,函數庫『必須要存在』,且函數庫的『所在目錄也不能改變』。
    4. 升級難易度:函數庫升級後,執行檔不需要進行重新編譯,故目前的 Linux distribution 比較傾向使用動態函數庫。



2019-06-17