1. 程式人生 > >linux檢視當前載入的所有動態庫

linux檢視當前載入的所有動態庫

因為之前用的一個動態庫現在要換一個版本,所以就想看一下這個庫是否還在載入。

轉自:http://blog.csdn.net/leo115/article/details/7773887

在我們做Linux開發的時候,往往會出現 某些庫 can not found 的情況,在我們添加了這些庫之後,如何檢視這些庫的路徑是否被識別了呢?下面介紹一個命令:

ldconfig -p | grep lts

說明:使用 ldconfig -p 命令用來打印出當前快取所儲存的所有庫的名字,然後用管道符傳遞給 grep lts 命令用於解析出 liblts.so 共享庫的路徑是否已加入快取中。

ldconfig是一個動態連結庫管理命令,為了讓動態連結庫為系統所共享,還需執行動態連結庫的管理命令--ldconfig  ldconfig 命令的用途,主要是在預設搜尋目錄(/lib和/usr/lib)以及動態庫配置檔案/etc/ld.so.conf內所列的目錄下,搜尋出可共享的動態連結庫(格式如前介紹,lib*.so*),進而創建出動態裝入程式(ld.so)所需的連線和快取檔案.快取檔案預設為 /etc/ld.so.cache,此檔案儲存已排好序的動態連結庫名字列表.

ldconfig通常在系統啟動時執行,而當用戶安裝了一個新的動態連結庫時,就需要手工執行這個命令.

ldconfig命令列用法如下:

ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...

ldconfig可用的選項說明如下:

(1) -v或--verbose : 用此選項時,ldconfig將顯示正在掃描的目錄及搜尋到的動態連結庫,還有它所建立的連線的名字.

(2) -n : 用此選項時,ldconfig僅掃描命令列指定的目錄,不掃描預設目錄(/lib,/usr/lib),也不掃描配置檔案/etc/ld.so.conf所列的目錄.

(3) -N : 此選項指示ldconfig不重建快取檔案(/etc/ld.so.cache).若未用-X選項,ldconfig照常更新檔案的連線.

(4) -X : 此選項指示ldconfig不更新檔案的連線.若未用-N選項,則快取檔案正常更新.

(5) -f CONF : 此選項指定動態連結庫的配置檔案為CONF,系統預設為/etc/ld.so.conf.

(6) -C CACHE : 此選項指定生成的快取檔案為CACHE,系統預設的是/etc/ld.so.cache,此檔案存放已排好序的可共享的動態連結庫的列表.

(7) -r ROOT : 此選項改變應用程式的根目錄為ROOT(是呼叫chroot函式實現的).選擇此項時,系統預設的配置檔案/etc/ld.so.conf,實際對應的為 ROOT/etc/ld.so.conf.如用-r /usr/zzz時,開啟配置檔案/etc/ld.so.conf時,實際開啟的是/usr/zzz/etc/ld.so.conf檔案.用此選項,可以大大增加動態連結庫管理的靈活性.

(8) -l : 通常情況下,ldconfig搜尋動態連結庫時將自動建立動態連結庫的連線.選擇此項時,將進入專家模式,需要手工設定連線.一般使用者不用此項.

(9) -p或--print-cache : 此選項指示ldconfig打印出當前快取檔案所儲存的所有共享庫的名字.

(10) -c FORMAT 或 --format=FORMAT : 此選項用於指定快取檔案所使用的格式,共有三種:old(老格式),new(新格式)和compat(相容格式,此為預設格式).

(11) -V : 此選項打印出ldconfig的版本資訊,而後退出.(12) -? 或 --help 或 --usage : 這三個選項作用相同,都是讓ldconfig打印出其幫助資訊,而後退出.

相關推薦

linux檢視當前載入所有動態

因為之前用的一個動態庫現在要換一個版本,所以就想看一下這個庫是否還在載入。 轉自:http://blog.csdn.net/leo115/article/details/7773887 在我們做Linux開發的時候,往往會出現 某些庫 can not found 的

ubuntu linux 載入當前目錄的動態

linux的excutable在執行的時候預設是先搜尋/lib和/usr/lib這兩個目錄,然後按照ld.so.conf裡面的配置搜尋絕對路徑,linux預設是不會在當前目錄搜尋動態庫的。windows載入動態庫的時候,預設是首先載入本地目錄下的動態庫,然後再搜尋windows/system和windows/

linux載入當前目錄的動態

 linux的excutable在執行的時候預設是先搜尋/lib和/usr/lib這兩個目錄,然後按照ld.so.conf裡面的配置搜尋絕 對路徑,linux預設是不會在當前目錄搜尋動態庫的。windows載入動態庫的時候,預設是首先載入本地目錄下的動態庫,然後再搜尋 win

[Linux] 如何讓linux載入當前目錄的動態

linux的excutable在執行的時候預設是先搜尋/lib和/usr/lib這兩個目錄,然後按照ld.so.conf裡面的配置搜尋絕對路徑,linux預設是不會在當前目錄搜尋動態庫的。windows載入動態庫的時候,預設是首先載入本地目錄下的動態庫,然後再搜尋window

linux載入當前目錄的動態

linux的excutable在執行的時候預設是先搜尋/lib和/usr/lib這兩個目錄,然後按照ld.so.conf裡面的配置搜尋絕對路徑,linux預設是不會在當前目錄搜尋動態庫的。windows載入動態庫的時候,預設是首先載入本地目錄下的動態庫,然後再搜尋wind

檢視當前mysql的指定的指定表的所有列欄位

-- 檢視當前mysql的所有資料庫  select * from INFORMATION_SCHEMA.SCHEMATA; --  檢視當前mysql的指定庫的指定表的所有列 select * from INFORMATION_SCHEMA.COLUMNS wher

linux如何檢視程式連結的動態

Linux linux下有一個命令可以檢視 ldd example.out ARM Linux arm-linux-gnueabihf-readelf -d example.so 根據

Linux程序編譯鏈接動態版本號的問題

存儲 軟鏈接 動態 文件的 不兼容 復制 我們 tracking root 不同版本號的動態庫可能會不兼容,假設程序在編譯時指定動態庫是某個低版本號。執行是用的一個高

配置環境的時候,PHP無法載入MySQL動態,麻煩大家幫忙看看!nocsl

不出 沒有 都沒有 小狗狗 ocs 想象 無法 配置環境 配置 黑暗降臨 夜空再一次降臨在人們的視線中 繁星點點 是那麽的美麗 當一顆流星夜空又添了一道美麗的景色 不過它消失的是那麽快 它匆匆的來又匆匆地走 沒留下一絲痕跡 但它確實來過 我常常在想 人生不就如此嗎?雖然現在

解決 openssl 在Linux 下預設不生成動態的問題

在Linux下利用原始碼安裝 OpenSSL 通常預設不會生成動態庫,解決辦法: 在config 加上 shared 選項 具體指令 ./config shared configure 制定生成靜態庫辦法: --enable-shared=no --enable-static

Linux檢視當前目錄下檔案/目錄數量

1) 統計當前資料夾下檔案的個數: ls -l |grep "^-"|wc -l   2) 統計當前資料夾下目錄的個數: ls -l |grep "^d"|wc -l   3) 統計當前資料夾下檔案的個數,包括子資料夾裡的 : ls -lR|grep

linux檢視根目錄下所有資料夾大小

linux檢視根目錄下所有資料夾大小的方法如下: 1、進入根目錄:cd / 2、使用命令 : du -sh * 檢視根目錄下每個資料夾的大小 3、進入佔用空間比較大的資料夾,然後再使用2中命令查詢大檔案。   查詢大於10M的檔案 find / -type f -size +

Linux環境下打包成動態

在Linux環境下打包成so動態庫,被java呼叫。 一、用到了ndk技術。(略說)    1.生成標頭檔案 .h    2.C/C++介面程式碼被jni呼叫。 二、打包so動態庫如下: 1.打包成副檔名為o的檔案。      g++ -fPIC -D_REENTRA

linux下g++ 編譯時動態和靜態的連結和標頭檔案問題

原來編譯的時候都是用的很隨意,沒用系統的總結一下,這幾天在編譯的時候遇到一些下問題,於是就總結一下,省得過幾天又給忘了。 1.動態庫和靜態庫簡介 靜態庫在程式連結的時候會自動的連結到程式裡,所以一旦編譯完成,靜態庫就不需要了,靜態庫以.a結尾。  動態庫在編譯時不會被連線到目的碼中,而是在程式執行

Android WebView載入Chromium動態的過程分析

        Chromium動態庫的體積比較大,有27M左右,其中程式段和資料段分別佔據25.65M和1.35M。如果按照通常方式載入Chromium動態庫,那麼當有N個正在執行的App使用WebView時,系統需要為Chromium動態庫分配的記憶體為

Linux下用Makefile製作動態和靜態並編譯生成可執行程式

Makefile 一個工程中的原始檔不計其數,其按型別、功能、模組分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新

linux檢視當前環境變數

$PATH:決定了shell將到哪些目錄中尋找命令或程式,PATH的值是一系列目錄,當您執行一個程式時,Linux在這些目錄下進行搜尋編譯連結。   編輯你的 PATH 宣告,其格式為:   PATH=$PATH:<PATH 1>:<PATH 2&g

linux -檢視當前服務執行狀態

#service servicename status是當前狀態#chkconfig --list servicename是檢視啟動狀態,也就是是否開機自動啟動 如果service和chkconfig 找不到,可以試試/sbin/service和/sbin/chkconfig 如果用ubuntu好像是要用/e

外掛載入帶有動態so的apk處理

     外掛載入帶有動態庫的apk時,會報UnsatisfiedLinkError找不到動態庫的錯誤。 解決方法是在DexClassLoader中 dalvik.system.DexClassLoader.DexClassLoader(String dexPath, S

linux環境下的c++ 動態的呼叫

主要是為了平時的學習記錄,不妥的地方,煩請指點。一.下面主要是dlopen開啟動態庫.so相關的API介面函式。1. void* dlopen(const char* filename,int flag);filename 是動態庫的path路徑,flag是動態庫載入的幾種方