Localizando dependências para um programa C ++ compilado

2

Eu escrevi e compilei um programa em C ++ usando o Qt Creator no Ubuntu 13.10 (32 bits). Eu tentei executar o programa compilado em um Ubuntu 13.10 recém-instalado (64 bits). Mas não é executado.

Eu acho que o problema é com dependências. Como posso encontrar (= sabe o nome e a versão de) dependências necessárias?

    
por user62511 08.05.2014 / 17:51

1 resposta

4

Isso é um pouco crasso, mas acho que o comando ldd é destinado a sua situação.

O ldd é usado para listar as dependências da biblioteca carregadas dinamicamente para um executável. Se o ldd não conseguir encontrar uma biblioteca necessária, isso indica que a biblioteca "não foi encontrada".

Como exemplo, se eu executar o ldd com um antigo binário gqrx que encontrei, recebo a seguinte saída:

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)

Como você pode ver, eu atualizei as bibliotecas do libgnuradio e removi as versões mais antigas. O ldd lista as bibliotecas perdidas como "não encontradas".

Boa sorte!

    
por 08.05.2014 / 18:12