Parece que seu aplicativo é um aplicativo de 32 bits, mas está tentando carregar uma biblioteca de 64 bits.
Em uma instalação de 64bits, você pode ter ambas as versões (32 bits e 64 bits) de quaisquer bibliotecas instaladas. 32bits podem ser encontrados em /usr/lib32
e 64bits em /usr/lib64
.
No Linux, as bibliotecas são pesquisadas usando uma seqüência de caminho, um pouco como a variável PATH, lista todos os diretórios para procurar o executável que você deseja executar quando nenhum caminho é dado.
Essa seqüência para procurar por bibliotecas é definida em uma variável chamada LD_LIBRARY_PATH
.
O problema é que o diretório para as versões 64bits vem antes do diretório com as versões 32bits. E geralmente o nome da biblioteca é idêntico para a versão de 32bits e 64bits.
Você pode superar esse problema criando um pequeno script de inicialização para seu aplicativo como este:
#!/bin/bash
export LD_LIBRARY_PATH=/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH
<your binary> $*
Se já houver um script para iniciar este aplicativo, basta adicionar a linha
export LD_LIBRARY_PATH=/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH
para ele, perto do topo.
Eu prefiro o primeiro método, criando um script específico, já que qualquer script de inicialização fornecido pelo pacote provavelmente será sobrescrito em caso de atualização.