O Ubuntu ARM ldd não consegue encontrar libs

2

Eu tenho um programa que compilou bem no Ubuntu ARM (12.04), mas ele não pode ser executado devido a erros de ligação. por exemplo. libX11.so.6 não pode ser encontrado, no entanto, é claramente em

/usr/lib/arm-linux-gnueabihf

ldconfig -v shows it as well

O que é estranho é quando eu passo LD_LIBRARY_PATH = / usr / lib / arm-gnueabihf / para ldd (depois da biblioteca compartilhada), eu recebo a mensagem

ldd: LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/: No such file or directory

Enquanto o diretório existe claramente. O que poderia dar errado? Eu corri o sudo ldconfig.

    
por RobbR 01.02.2013 / 23:07

1 resposta

1

Você pode ter misturado ABIs . Existem atualmente várias ABIs para processadores ARM de uso comum, devido à variedade de CPUs ARM. Verifique se você tem um binário gnueabihf e não um binário do gnueabi. Você pode instalar os dois tipos de binários no mesmo sistema, mas não pode vincular os dois tipos de bibliotecas dentro de um único executável. É como executáveis de 32 e 64 bits em sistemas x86.

Com LD_LIBRARY_PATH , o comando correto para adicionar a variável no ambiente pela duração do comando ldd é

LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/ ldd /path/to/binary

Você escreveu ldd LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/ /path/to/binary , que diz a ldd para agir em um arquivo chamado LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/ .

    
por Gilles 01.02.2013 / 23:18