Da troca de mensagens, parece que você tem a biblioteca instalada em / usr / local / lib. Mas seu aplicativo não sabe procurar lá pela biblioteca.
Você pode resolver isso de algumas maneiras.
-
Você pode fornecer sinalizadores especiais ao configurar / construir seu projeto para informar ao seu binário para verificar em / usr / local / lib. Se você souber como definir sinalizadores na compilação, deverá definir
LDFLAGS=-Wl,-rpath,/usr/local/lib
. Isso faria com que você reconstruísse. -
O vinculador de tempo de execução examina uma variável de ambiente chamada
LD_LIBRARY_PATH
para ver quais diretórios verificar ao procurar por bibliotecas compartilhadas. Nesse caso, se você digitarexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
e, em seguida, executar seu programa, ele deverá funcionar. -
Se você tiver vários programas que precisam do diretório / usr / local / lib e achar que é seguro incluir todos, você pode configurar o vinculador de tempo de execução para tentar / usr / local / lib toda vez. Você pode soltar um arquivo em
/etc/ld.so.conf.d
ou editar/etc/ld.so.conf
para adicionar / usr / local / lib. Isso afetaria todos os executáveis do seu sistema, então considero este bastante avançado.
Em suma, você precisa dizer ao seu programa como encontrar a biblioteca. O mais fácil, por enquanto, é definir a variável LD_LIBRARY_PATH
com export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib