偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

深入淺析Linux庫文件的搜索路徑

系統(tǒng) Linux
本文主要講解linux庫文件,主要包含LD_LIBRARY_PATH 中指明庫的搜索路徑、在 /etc/ld.so.conf 文件中添加庫的搜索路徑等方面。

linux有很多值得學(xué)習(xí)的地方,這里我們主要介紹linux庫文件,經(jīng)過搜集和整理linux庫文件材料,在這里拿出來和大家分享一下,希望大家看后會有不少收獲。

linux庫文件在連接(靜態(tài)庫和共享庫)和運行(僅限于使用共享庫的程序)時被使用,其搜索路徑是在系統(tǒng)中進行設(shè)置的。

一般 Linux 系統(tǒng)把 /lib 和 /usr/lib 兩個目錄作為默認(rèn)的庫搜索路徑,所以使用這兩個目錄中的庫時不需要進行設(shè)置搜索路徑即可直接使用。對于處于默認(rèn)庫搜索路徑之外的庫,需要將庫的位置添加到庫的搜索路徑之中。

設(shè)置linux庫文件的搜索路徑有下列兩種方式,可任選其一使用:
在環(huán)境變量 LD_LIBRARY_PATH 中指明庫的搜索路徑。
在 /etc/ld.so.conf 文件中添加庫的搜索路徑。
將自己可能存放庫文件的路徑都加入到/etc/ld.so.conf中是明智的選擇
添加方法也極其簡單,將linux庫文件的絕對路徑直接寫進去就OK了,一行一個。

例如:
/usr/X11R6/lib
/usr/local/lib
/opt/lib
需要注意的是:第二種搜索路徑的設(shè)置方式對于程序連接時的庫(包括共享庫和靜態(tài)庫)的定位已經(jīng)足夠了,但是對于使用了共享庫的程序的執(zhí)行還是不夠的。這是因為為了加快程序執(zhí)行時對共享庫的定位速度,避免使用搜索路徑查找共享庫的低效率,所以是直接讀取庫列表文件 /etc/ld.so.cache 從中進行搜索的。/

etc/ld.so.cache 是一個非文本的數(shù)據(jù)文件,不能直接編輯,它是根據(jù) /etc/ld.so.conf 中設(shè)置的搜索路徑由 /sbin/ldconfig 命令將這些搜索路徑下的共享庫文件集中在一起而生成的(ldconfig 命令要以 root 權(quán)限執(zhí)行)。因此,為了保證程序執(zhí)行時對庫的定位,在 /etc/ld.so.conf 中進行了庫搜索路徑的設(shè)置之后,還必須要運行 /sbin/ldconfig 命令更新 /etc/ld.so.cache 文件之后才可以。

ldconfig ,簡單的說,它的作用就是將/etc/ld.so.conf列出的路徑下的linux庫文件緩存到/etc/ld.so.cache 以供使用。因此當(dāng)安裝完一些庫文件,(例如剛安裝好glib),或者修改ld.so.conf增加新的庫路徑后,需要運行一下 /sbin/ldconfig使所有的庫文件都被緩存到ld.so.cache中,如果沒做,即使庫文件明明就在/usr/lib下的,也是不會被使用的,結(jié)果編譯過程中抱錯,缺少xxx庫,去查看發(fā)現(xiàn)明明就在那放著,搞的想大罵computer蠢豬一個。

在程序連接時,對于linux庫文件(靜態(tài)庫和共享庫)的搜索路徑,除了上面的設(shè)置方式之外,還可以通過 -L 參數(shù)顯式指定。因為用 -L 設(shè)置的路徑將被優(yōu)先搜索,所以在連接的時候通常都會以這種方式直接指定要連接的庫的路徑。

前面已經(jīng)說明過了,庫搜索路徑的設(shè)置有兩種方式:在環(huán)境變量 LD_LIBRARY_PATH 中設(shè)置以及在 /etc/ld.so.conf 文件中設(shè)置。其中,第二種設(shè)置方式需要 root 權(quán)限,以改變 /etc/ld.so.conf 文件并執(zhí)行 /sbin/ldconfig 命令。而且,當(dāng)系統(tǒng)重新啟動后,所有的基于 GTK2 的程序在運行時都將使用新安裝的 GTK+ 庫。不幸的是,由于 GTK+ 版本的改變,這有時會給應(yīng)用程序帶來兼容性的問題,造成某些程序運行不正常。為了避免出現(xiàn)上面的這些情況,在 GTK+ 及其依賴庫的安裝過程中對于linux庫的搜索路徑的設(shè)置將采用第一種方式進行。

這種設(shè)置方式不需要 root 權(quán)限,設(shè)置也簡單:
$ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
可以用下面的命令查看 LD_LIBRAY_PATH 的設(shè)置內(nèi)容:
$ echo $LD_LIBRARY_PATH
至此,庫的兩種設(shè)置就完成了。

【編輯推薦】

  1. Linux系統(tǒng)實現(xiàn)SCSI硬盤熱插拔及在線識別步驟
  2. 輕松了解Linux打印之CUPS軟件
  3. 話說在win32下安裝linux虛擬機
  4. 簡述兩種Linux基本命令:man與reboot應(yīng)用
  5. 你是否了解linux gcc版本
責(zé)任編輯:薛輩輩 來源: linux
相關(guān)推薦

2009-12-17 16:28:07

Linux圖形系統(tǒng)

2009-10-28 13:44:40

linux庫文件路徑

2023-06-24 10:44:34

Linux文件搜索

2021-01-27 10:56:05

Linux運維Linux系統(tǒng)

2018-01-31 12:40:48

Linux命令文件搜索

2011-01-11 15:44:08

2024-01-26 17:26:19

LinuxNautilus文件搜索

2019-09-25 09:28:54

Linux系統(tǒng)架構(gòu)

2017-08-14 13:35:36

Linux共享內(nèi)存tmpfs文件系統(tǒng)

2013-04-28 13:54:26

Android編譯系統(tǒng)頭文件搜索路徑順序

2014-08-13 10:41:08

linux線程

2009-11-03 17:46:50

ADO.NET Sel

2009-11-25 17:52:19

無線路由傳輸

2011-07-04 13:36:26

linuxOracle

2011-06-28 13:26:23

Oracle數(shù)據(jù)庫ODBC

2009-09-01 14:27:04

C#Excel文本

2021-03-17 21:34:44

Linux內(nèi)存管理

2011-06-21 13:52:18

Qt 界面

2009-12-11 14:57:02

Linux文件夾

2010-02-02 09:02:01

Oracle數(shù)據(jù)庫機Oracle Exad
點贊
收藏

51CTO技術(shù)棧公眾號