linux——函數庫管理

  • 函數庫

       程序開發中,將一些具有一定功能、且經常被調用的函數編譯成函數庫。函數庫可以使得程序的開發簡單、方便。函數庫分爲靜態和動態。之間也存在一定的區別。

  • 靜態函數庫

       這類函數庫以擴展名.a結束。這類函數庫通常爲libxxx.a類型。他們是在編譯的時候直接整合到執行程序當中,所以在程序中只要用到這類庫的時候,都會存在一份庫函數。這類函數庫的最大優點是當編譯成可執行文件以後,不再需要讀取外部的函數庫的內容了。

       但是,當要對庫函數進行升級了。整個程序必須重新編譯。

  • 動態鏈接庫

       擴展名通常爲libxxx.so的類型。動態鏈接庫並沒有把代碼整合到程序當中。而是通過程序當中的指針來指向函數庫來實現的。所以它的程序也相應的能小些。但是,這類型的函數庫編譯出來的程序是不能獨立執行的。函數庫的目錄也是不能改變的。但是也正是由於它的獨立性,如果庫函數發生改變的話,只需要對庫函數進行獨立編譯。


動態鏈接庫是被放在硬盤上的,當程序運行時,需要調用動態鏈接庫時。但是硬盤的訪問速度有限,影響程序的開啓速度。此時,可以將動態鏈接庫從硬盤先讀到內存當中(cache),調用速度也就提高了。

將動態鏈接庫加載到高速緩存中:

  • 在/etc/ld.so.conf 中加入函數庫的目錄
  • ldconfig 執行/etc/ld.so.conf中的資料到cache中
  • 同時將數據也記錄一份到/etc/ld.so.cache

     

發佈了42 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章