尋找已編譯的 C++ 程式的依賴項

尋找已編譯的 C++ 程式的依賴項

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

我認為問題出在依賴關係。我如何找到(=知道其名稱和版本)必要的依賴項?

答案1

這有點粗糙,但我認為 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 將那些缺少的函式庫列為「未找到」。

祝你好運!

相關內容