1. 程式人生 > >Linux系統中如何新增自己的庫檔案路徑

Linux系統中如何新增自己的庫檔案路徑

庫檔案在連線(靜態庫和共享庫)和執行(僅限於使用共享庫的程式)時被使用,其搜尋路徑是在系統中進行設定的。一般 Linux 系統把 /lib 和 /usr/lib 兩個目錄作為預設的庫搜尋路徑,所以使用這兩個目錄中的庫時不需要進行設定搜尋路徑即可直接使用。對於處於預設庫搜尋路徑之外的庫,需要將庫的位置新增到庫的搜尋路徑之中。設定庫檔案的搜尋路徑有下列兩種方式,可任選其一使用:

在環境變數 LD_LIBRARY_PATH 中指明庫的搜尋路徑。

在 /etc/ld.so.conf 檔案中新增庫的搜尋路徑。

將自己可能存放庫檔案的路徑都加入到/etc/ld.so.conf中是明智的選擇

新增方法也極其簡單,將庫檔案的絕對路徑直接寫進去就OK了,一行一個。例如:

/usr/X11R6/lib

/usr/local/lib

/opt/lib

需要注意的是:第二種搜尋路徑的設定方式對於程式連線時的庫(包括共享庫和靜態庫)的定位已經足夠了,但是對於使用了共享庫的程式的執行還是不夠的。這是因為為了加快程式執行時對共享庫的定位速度,避免使用搜索路徑查詢共享庫的低效率,所以是直接讀取庫列表檔案 /etc/ld.so.cache 從中進行搜尋的。/etc/ld.so.cache 是一個非文字的資料檔案,不能直接編輯,它是根據 /etc/ld.so.conf 中設定的搜尋路徑由 /sbin/ldconfig 命令將這些搜尋路徑下的共享庫檔案集中在一起而生成的(ldconfig 命令要以 root 許可權執行)。因此,為了保證程式執行時對庫的定位,在 /etc/ld.so.conf 中進行了庫搜尋路徑的設定之後,還必須要執行 /sbin/ldconfig 命令更新 /etc/ld.so.cache 檔案之後才可以。ldconfig ,簡單的說,它的作用就是將/etc/ld.so.conf列出的路徑下的庫檔案

快取到/etc/ld.so.cache 以供使用。因此當安裝完一些庫檔案,(例如剛安裝好glib),或者修改ld.so.conf增加新的庫路徑後,需要執行一下 /sbin/ldconfig使所有的庫檔案都被快取到ld.so.cache中,如果沒做,即使庫檔案明明就在/usr/lib下的,也是不會被使用的,結果編譯過程中抱錯,缺少xxx庫,去檢視發現明明就在那放著,搞的想大罵computer蠢豬一個。

在程式連線時,對於庫檔案(靜態庫和共享庫)的搜尋路徑,除了上面的設定方式之外,還可以通過 -L 引數顯式指定。因為用 -L 設定的路徑將被優先搜尋,所以在連線的時候通常都會以這種方式直接指定要連線的庫的路徑。

前面已經說明過了,庫搜尋路徑的設定有兩種方式:在環境變數 LD_LIBRARY_PATH 中設定以及在 /etc/ld.so.conf 檔案中設定。其中,第二種設定方式需要 root 許可權,以改變 /etc/ld.so.conf 檔案並執行 /sbin/ldconfig 命令。而且,當系統重新啟動後,所有的基於 GTK2 的程式在執行時都將使用新安裝的 GTK+ 庫。不幸的是,由於 GTK+ 版本的改變,這有時會給應用程式帶來相容性的問題,造成某些程式執行不正常。為了避免出現上面的這些情況,在 GTK+ 及其依賴庫的安裝過程中對於庫的搜尋路徑的設定將採用第一種方式進行。這種設定方式不需要 root 許可權,設定也簡單:

$ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH

可以用下面的命令檢視 LD_LIBRAY_PATH 的設定內容:

$ echo $LD_LIBRARY_PATH

至此,庫的兩種設定就完成了。

相關推薦

Linux系統新增檔案路徑的方法

  庫檔案在連結(靜態庫和共享庫)和執行(僅限於使用共享庫的程式)時被使用,其搜尋路徑是在系統中進行設定的。一般 Linux 系統把 /lib 和 /usr/lib 兩個目錄作為預設的庫搜尋路徑,所以使用這兩個目錄中的庫時不需要進行設定搜尋路徑即可直接使用。但是

如何在Linux系統使用rar壓縮檔案

RAR是一種非常好的歸檔檔案格式。相比之下7-zip提供了更好的壓縮率,並且預設情況下可以在多個平臺上輕鬆支援Zip檔案。 雖然 RAR 它是最流行的歸檔格式之一併且在Window中很流行,但是,預設 Linux發行版 系統中的歸檔管理器不支援提取RAR檔案,也不允許您建立RAR檔案。 不

linux python 永久新增自己的模組路徑

  Linux 環境變數配置 : https://blog.csdn.net/freeking101/article/details/81013045 linux python 永久新增自己的模組路徑   新增路徑: cd /usr/local/p

Linux核心新增自己的驅動程式

就說一下怎麼新增進去吧。首先你要把驅動程式寫好。我已新增 首先在drivers目錄下面建立GPIO資料夾,,資料夾下面建立三個檔案,分別是:gpio.c,Kconfig Makefile,三個檔案。     gpio.c是你的驅動程式,Kconfig是配置選單,也就是它會在

Linux系統如何查詢大檔案或資料夾的方法

[[email protected] u03]# find . -type f -size +800M  -print0 | xargs -0 ls -l -rw-r----- 1 oracle oinstall 2782846976 Mar  6 11:51 ./flash_recovery

linux系統的簡單拷貝檔案程式碼

#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #inc

Linux系統新增IP地址以及預設閘道器

今天碰到一個問題,手頭兩臺機器:一臺window機器,一臺linux工控機。 問題描述: 1.windows機器IP:10.194.229.170 ,外網測試平臺IP地址:115.238.107.211 2.然後在我的linux工控機上也增添了一個外網IP:10.194.2

修改linux系統tomcat預設輸入日誌路徑

1、修改catalina.sh進入tomcat安裝目錄/bin,找到catalina.sh,先進行備份。對本地的catalina.sh進行修改,這裡是以將日誌目錄修改為/data/logs為例,即將$CATALINA_BASE/logs/catalina.out改為CATAL

Linux系統如何新增自己檔案路徑

庫檔案在連線(靜態庫和共享庫)和執行(僅限於使用共享庫的程式)時被使用,其搜尋路徑是在系統中進行設定的。一般 Linux 系統把 /lib 和 /usr/lib 兩個目錄作為預設的庫搜尋路徑,所以使用這兩個目錄中的庫時不需要進行設定搜尋路徑即可直接使用。對於處於預設庫搜尋

linux 新增自己路徑的方法

庫文件在連線(靜態庫和共享庫)和執行(僅限於使用共享庫的程式)時被使用,其搜尋路徑是在系統中進行配置的。一般 Linux 系統把 /lib 和 /usr/lib 兩個目錄作為預設的庫搜尋路徑,所以使用這兩個目錄中的庫時無需進行配置搜尋路徑即可直接使用。對於處於預設庫搜尋路

記錄一個遞迴讀取linux系統檔案路徑的方法

入參為要查詢的路徑,返回所有檔案的路徑列表:    public static List<File> getAllFile(String path) throws Exception {     

linux下C/C++編譯時系統搜尋 include 和 連結 檔案路徑的指定

    第二種搜尋路徑的設定方式對於程式連線時的庫(包括共享庫和靜態庫) 的定位已經足夠了,但是對於使用了共享庫的程式的執行還是不夠的。這是因為為了加快程式執行時對共享庫的定位速度,避免使用搜索路徑查詢共享庫的低效率,系統會直接讀取 /etc/ld.so.cache 並從中進行搜尋的。/etc/ld.so.

VC2010怎樣新增標頭檔案路徑(外來的標頭檔案)還有lib

編譯器查詢標頭檔案的順序是(1)原始檔(.c或.cpp)所在目錄(2)屬性->C/C++ ->常規->附加包含目錄(3)屬性->VC++目錄->包含目錄   如果你常使用它們,扔進你的VC庫Microsoft Visual Stu

linux核心檔案新增自己的驅動,新增自己linux驅動,編譯自己linux驅動程式方法和例子圖文

此文章為done原創,轉載請寫明出處,尊重原創。 寫這個文章,我參考了網上的一些部落格: http://bbs.chinaunix.net/thread-3634524-1-1.html http://www.bkjia.com/gjrj/800182.html 也參考

Linux系統安裝MySQL數據操作手冊

linux mysql數據庫 Linux系統中MySQL數據庫安裝手冊一、安裝概述: 在Linux操作系統中安裝MySQL數據庫是一個我們必須要掌握的一門技術,也決定了你以後找工作的薪資待遇,所以你知道它的厲害了吧!學會安裝只是第一步,你還得學好數據庫的基本操作,以及搭建一個數據庫的主從配置等等

Linux系統MySQL數據“主從”配置

linux mysql數據庫主從配置 MySQL數據庫“主從”配置一、配置概述: 在Linux操作系統中配置MySQL數據庫的主從復制是很重要的,為什麽這樣說呢!是因為在你搭建一個服務器以後你配置了2臺數據庫,一主一從。2臺數據庫配置好以後,當其中一臺數據庫被攻擊以後,你被攻擊的這臺數據庫的數據

Linux系統文件丟失或不小心卸載rpm的修復方法

修復庫文件庫文件丟失恢復 rpm被卸載修復Linux系統中庫文件丟失或不小心卸載rpm的修復方法

Linux系統的mariadb主從數據搭建

error image 關閉 復制 管理員 linu server running tin 主從服務器的優勢 讀寫分離,使數據庫能支撐更大的並發有的表sql語句非常的慢,可能會導致鎖表,就影響前臺服務。如果前臺使用master,查詢使用slave,那麽將不會造成前臺鎖,保

如何在Linux系統編寫指令碼檔案自動執行

        在叢集的部署和啟動過程中,往往要執行叫較多的命令,特別是已經部署成功在啟動的時候,總有一些初始化的工作要做。這個時候如果還是選擇一個一個去依次執行未免有些太浪費時間,因此選擇了指令碼的方式。並且指令碼的方式也便於向

檔案LINUX系統的傳輸

一、檔案的遠端複製命令scp 1.上傳 scp file [email protected]:/dir    ###把本機的檔案傳輸給某使用者的絕對路徑目錄中 2.下載 scp [email protected]:/file dir &nb