ldconfig用法與說明
執行環境Ubuntu 10.04.4 LTS 與kernel 2.6.32-320-generic
可由lsb_release -a 與 uname -r查看
ldconfig的用法很簡單,但重要的是libray & PATH的觀念
可由lsb_release -a 與 uname -r查看
ldconfig的用法很簡單,但重要的是libray & PATH的觀念
為什麼libaray需要管理?因為不論是軟體執行或Build 你的Source Code在這過程都有可能會需要連結到需要的函式庫
函式庫又分為動態連結Dynamic Linker和靜態連結Static Linker
在Linux 中動態與靜態的副檔名與差別簡述
(如果有興趣找任何的程式語言書籍應該都會介紹到compile過程與libary & header file吧)
——————————————————————————————————————–
動態連結檔會以*.so 或者 *.so.* 來表示 , compile出來的binary executable file較小 但執行速度較慢,因為他在執行時才會載入需要的函式庫
靜態連結為*.a, compile出來的binary executable file較大 但執行速度較快,因為它需要的lib都包在自己身上拉
透過圖片解釋
PS 雖然英文有點破但應該可以了解我想表達甚麼吧
如果系統不知道你所安裝的套件、工具、或是Application Programming Interface的函式庫安裝位置當執行程式時就會產生錯誤因為找不到mach的lib
可以透過幾種方法和工具來告知Kernel,ldconfig就是其中之一
ldconfig會根據/etc/ld.so.conf內容去搜尋並將函式庫載入main memory提高執行速度方法很簡單…要先知道你的函式庫安裝後的位置在哪
(可以透過pkg-config 得知,可以參考另一篇pkg-config說明與用法)
之後把lib路徑寫入/etc/ld.so.conf.d/XXX.conf檔案後執行ldconfig就完成了
以OpenCV為例,
sudo vi /etc/ld.so.conf.d/opencv.conf
在檔案內寫入 /usr/local/lib 後存檔
sudo ldconfig
沒有留言:
張貼留言