Поиск зависимостей для скомпилированной программы C++

Поиск зависимостей для скомпилированной программы C++

Я написал и скомпилировал программу на C++ с помощью Qt Creator в Ubuntu 13.10 (32 бит). Я попытался запустить скомпилированную программу в недавно установленной Ubuntu 13.10 (64 бит). Но она не запускается.

Я думаю, проблема в зависимостях. Как мне найти (=узнать название и версию) необходимые зависимости?

решение1

Это немного грубо, но я думаю, что команда ldd предназначена для вашей ситуации.

ldd используется для перечисления динамически загружаемых зависимостей библиотек для исполняемого файла. Если ldd не может найти нужную библиотеку, он указывает, что библиотека «не найдена».

Например, если я запущу ldd со старым бинарным файлом gqrx, который я нашел, я получу следующий вывод:

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 перечисляет эти отсутствующие библиотеки как «не найденные».

Удачи!

Связанный контент