Libraries

查找已編譯 C++ 程序的依賴項

  • May 8, 2014

我在 Ubuntu 13.10(32 位)中使用 Qt Creator 編寫並編譯了一個 C++ 程序。我嘗試在新安裝的 Ubuntu 13.10(64 位)中執行編譯後的程序。但它沒有執行。

我認為問題在於依賴關係。我怎樣才能找到(=知道名稱和版本)必要的依賴項?

這有點粗略,但我認為 ldd 命令適用於您的情況。

ldd 用於列出執行檔的動態載入庫依賴項。如果 ldd 無法找到需要的庫,則表明該庫“未找到”。

例如,如果我使用找到的舊 gqrx 二進製文件執行 ldd,我會得到以下輸出:

linux-gate.so.1 (0xb7fff000)
libgnuradio-audio.so.3.6.1 => not found
libgnuradio-osmosdr.so.0 => not found
libgnuradio-core.so.3.6.1 => not found
libgruel.so.3.6.1 => not found
libfftw3f.so.3 => /usr/lib/i386-linux-gnu/libfftw3f.so.3 (0x41b5d000)
libusb-1.0.so.0 => /lib/i386-linux-gnu/libusb-1.0.so.0 (0x422ee000)
libQtGui.so.4 => /usr/lib/i386-linux-gnu/libQtGui.so.4 (0x42e47000)
libQtCore.so.4 => /usr/lib/i386-linux-gnu/libQtCore.so.4 (0xb7cde000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0x411dc000)

如您所見,我已經升級了 libgnuradio 庫並刪除了舊版本。ldd 將那些缺少的庫列為“未找到”。

祝你好運!

引用自:https://unix.stackexchange.com/questions/128503