Ich habe ein C++-Programm mit Qt Creator in Ubuntu 13.10 (32 Bit) geschrieben und kompiliert. Ich habe versucht, das kompilierte Programm in einem neu installierten Ubuntu 13.10 (64 Bit) auszuführen. Aber es läuft nicht.
Ich denke, das Problem liegt bei den Abhängigkeiten. Wie kann ich die erforderlichen Abhängigkeiten finden (=deren Namen und Version kennen)?
Antwort1
Das ist etwas grob, aber ich denke, der Befehl ldd ist für Ihre Situation gedacht.
ldd wird verwendet, um die dynamisch geladenen Bibliotheksabhängigkeiten für eine ausführbare Datei aufzulisten. Wenn ldd eine benötigte Bibliothek nicht finden kann, zeigt es die Bibliothek als „nicht gefunden“ an.
Wenn ich beispielsweise ldd mit einer alten gqrx-Binärdatei ausführe, die ich gefunden habe, erhalte ich die folgende Ausgabe:
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)
Wie Sie sehen, habe ich die libgnuradio-Bibliotheken inzwischen aktualisiert und die älteren Versionen entfernt. ldd listet diese fehlenden Bibliotheken als „nicht gefunden“ auf.
Viel Glück!