1. 程式人生 > >linux命令之檢視程式動態庫依賴-ldd

linux命令之檢視程式動態庫依賴-ldd

一個程式依賴很多的動態庫,類似windows下的depends工具可以檢視exe程式的依賴庫是否找到。在linux下,可以通過ldd命令檢視程式是否能找到依賴的動態庫,從而排查是缺少庫還是由於環境變數配置不正確導致的程式無法啟動。

在shell環境下輸入ldd --help檢視ldd命令的選項:

用法:ldd [選項]… 檔案…
      --help              印出這份說明然後離開
      --version           印出版本資訊然後離開
  -d, --data-relocs       程序資料重定址
  -r, --function-relocs   程序資料和函式重定址
  -u, --unused            印出未使用的直接依賴關係
  -v, --verbose           印出所有資訊

要知道錯誤報告指令,請參看:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.


相關推薦

linux命令檢視程式動態依賴-ldd

一個程式依賴很多的動態庫,類似windows下的depends工具可以檢視exe程式的依賴庫是否找到。在linux下,可以通過ldd命令檢視程式是否能找到依賴的動態庫,從而排查是缺少庫還是由於環境變數配置不正確導致的程式無法啟動。 在shell環境下輸入ldd --help

linux命令檢視程序執行動態依賴及開啟檔案-lsof

ldd命令可以看到程式依賴庫,但是有的動態庫是使用dlopen介面隱式載入的方式載入起來的,這個時候使用ldd命令是看不見的。 不過有另一個命令lsof,lsof命令可以看見執行中的程序載入了哪些動態庫,lsof是list open file的簡寫,所以lsof還可以看見程

linux命令檢視動態符號-nm

在呼叫動態庫的時候,經常出現由於動態庫介面修改或者版本不匹配導致呼叫動態庫找不到函式介面符號的情況。 原因可能有如下幾種: 1.由於c++動態庫編譯沒有加extern c導致函式編譯時加了c++的字首的; 2.系統中有多個庫,程式載入了其他路徑的庫; 3.庫的版本不對,老版

Linux命令檢視磁碟空間

df:列出檔案系統的整體磁碟使用情況,disk free Filesystem:代表該檔案系統所有的分割槽 Used:已經使用的硬碟空間 Available:剩下的磁碟空間大小 Use%:磁碟使用率 Mounted on:磁碟掛載的目錄所在(掛載點) 1k-b

Linux命令檢視日誌等實時檔案命令(less 、tail)使用

一、less的使用 1)less  檔名,即可快速開啟檔案 2)相關檢視搜尋 3)利用鍵盤向上向下箭頭鍵盤上的向上和向下箭頭,點選一次向下簡單,檔案內容往下讀取一行;點選一次向上箭頭,檔案內容,往上翻滾一行。 4)page down 和page up利用鍵盤的page down 和page

Linux命令檢視服務程序(ps aux、ps -aux、ps -ef)的運用

執行ps命令即可列出的是當前伺服器程序的快照(時間點),如果想要實時動態的顯示程序資訊,就可以使用top命令。 linux上程序有5種狀態:  1. 執行(正在執行或在執行佇列中等待)  2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號)  3. 不可中斷(收到訊

Linux命令檢視使用者資訊

命令 作用 id [使用者名稱] 檢視使用者UID和GID資訊 who 檢視當前所有登入的使用者列表 whoami 檢視當前登入使用者的賬戶名 1.passwd檔

linux命令檢視目錄樹結構-tree

linux下我們經常要檢視目錄的組織結構,tree命令以樹形結構顯示檔案目錄。 直接使用tree dir顯示目錄下所有檔案和資料夾: $ tree go go ├── build.sh ├── compile-run.sh ├── main └── main.go tre

Linux命令檢視cpu個數_核數_記憶體總數

http://blog.csdn.net/cgwcgw_/article/details/10000053 cpu個數 cat /proc/cpuinfo | grep "physical id" | uniq cpu核數 cat /proc/cpuinfo | grep

linux命令檢視當前shell環境變數-env

linux下執行程式程序經常出現由於環境問題導致的程式找不到動態庫的情況,因為一般程式是通過ld_library_path這個環境變數查詢使用者動態庫的。 不過也可以指定使用者定義環境變數,還有就是一個叫pkg-config的工具,可以通過工具的pc檔案中配置查詢動態庫的路

linux 使用readelf命令檢視.so動態的真實名

linux strip 可以去除連結資訊 讓nm看不到 但是readelf 用-s引數 仍然可以看到 例如readelf -s libACE-5.7.1.so 使用readelf檢視動態庫的真實名字 readelf -d 動態庫檔案 檢視共享庫的依賴庫(NEEDED)和搜尋

linux命令新增系統搜尋動態目錄-ldconfig

ldconifg,/etc/ld.so.conf,/etc/ld.so.cache三個的關係 一般情況下我們可以將程式需要搜尋動態庫的路徑配置到ld_library_path這個環境變數中,不過很多系統的庫我們沒有配置到這個環境變數中也是可以找到的,ldconfig就如同w

Linux下C程式動態的生成和呼叫

Linux下C程式動態庫的生成和呼叫 文章目錄 Linux下C程式動態庫的生成和呼叫 1 動態庫的打包和呼叫 2 靜態庫打包和呼叫 3 常用命令 4 gcc 和 g++ 區別 5 編譯和連結的理解

Android 檢視動態依賴檔案

參考:http://blog.csdn.net/renwotao2009/article/details/51398739   最近工作過程中,遇到了一個庫檔案開啟失敗的問題,需要檢視so檔案依賴哪些動態庫。之前看到有同事用到ldd命令,但是本地使用ldd命令來解析arm的動態庫是不行

linux關於執行編譯後命令找不到動態.so檔案的解決辦法。

方法一:(沒有root許可權)利用find找到報錯動態庫檔案目錄lib路徑,vim /home/xxx/.bashrc 新增一行: export LD_LIBRARY_PATH=動態庫/lib:$LD_LIBRARY_PATH 然後 source /home/xxx/.bashrc

大資料Linux命令使用者,使用者組及檢視命令幫助

修改執行命令型別 (1)bash改成false:dudu❌515:515::/tmp:/bin/false 切換使用者:[[email protected] ~]# su - dudu (沒有使用者結果) (2)bash改成nologin:dudu❌515:515::/tmp:/bin/nolo

大資料Linux命令檔案檢視大小、系統情況命令、壓縮與解壓

一、實時檢視檔案內容 Linux 中有一個tail命令,常用來顯示一個檔案的最後n行文件內容 但更多情況下,我們要在伺服器端執行程式,並且需要實時監控執行日誌,這時候有什麼辦法實時滾動顯示log檔案內容? 這裡可以利用tail命令加引數f實現:tail用於顯示指

Linux命令系列-檢視檔案程式相關fuser、lsof、pidof

fuser:通過檔案或檔案系統找出正在使用該檔案的程式 fuser [-umv] [-k [i] [-signal]] file/dir 選項與引數: -u :除了程式的 PID 之外,同時列出該程式的擁有者; -m :後面接的那個檔名會主動的上提到該檔案系統的最頂層,對 umoun

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

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

Linux常用命令——檢視檔案型別file

file命令用來探測給定檔案的型別。file命令對檔案的檢查分為檔案系統、魔法幻數檢查和語言檢查3個過程。語法file(選項)(引數)選項-b:列出辨識結果時,不顯示檔名稱; -c:詳細顯示指令執行過程,便於排錯或分析程式執行的情形; -f<名稱檔案>:指定名稱檔