Eu construí um projeto wxWidgets usando Code :: Blocks 16.01 no Debian 9 x86_64. O projeto usa três bibliotecas dinâmicas para funcionar:
libarjois.so
libcryptocore.so
libcryptopp.so.5.6
O primeiro usa o segundo que, por sua vez, usa o terceiro. Eu coloquei um link simbólico chamado libcryptopp.so
apontando para libcrypotpp.so.5.6
.
As três bibliotecas estão na subpasta de um executável chamada libs
e nas Opções de vinculador de Code :: Blocks para o projeto eu especifiquei essa subpasta.
No entanto, como ldd myExecutable
mostra que as bibliotecas necessárias não foram encontradas, adicionei a variável de ambiente LD_LIBRARY_PATH = myHomeFolder/lib
a .bashrc
e coloquei as bibliotecas dentro dessa pasta para usar o software.
Dessa forma, posso iniciar o programa com êxito a partir da linha de comando, mas se eu clicar duas vezes nele, ele não será executado.
Eu criei um lançador de desktop para depurar o comportamento e descobri que aparentemente as três bibliotecas não são encontradas quando o programa é iniciado com o doubleclick.
Qual é o significado desse comportamento?
Sou forçado a copiar as bibliotecas compartilhadas para /usr/lib/x_86_64-linux-gnu
para ativar o programa graficamente?
Eu até tentei criar um bash e um script python para lançar o programa graficamente, mas tudo falhou.
Tags dynamic-linking