標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (117) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (126) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (2) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)

2014年2月21日 星期五

ldconfig 是什麼?

http://www.gluck.tw/vic/vics-lab/ldconfig%E7%94%A8%E6%B3%95%E8%88%87%E8%AA%AA%E6%98%8E/

ldconfig用法與說明

執行環境Ubuntu 10.04.4 LTS 與kernel 2.6.32-320-generic
可由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

沒出現任何訊息是正常的,要更詳細了解ldconfig的用法man一下就好了


在當兵時時間較多就想說找本書看看充實一下自己,所以買了

鳥哥Linux私房菜基礎學習篇,當時對於linux是完全不了解

雖然書上寫得很詳細,但對於完全沒接觸過的東西要完全了解也實在有點困難@@

在Porting過程要懂得東西還真不少,Library函式庫的管理就是其中一大重點阿

回來看看鳥哥的書就了解原來是這樣有點被點醒的感覺

感謝鳥哥對於想進入Linux的人提供一個很好的入口


參考資料;

鳥哥Linux私房菜基礎學習篇

沒有留言:

張貼留言