robocin / scripts-ubuntu-common

Store shell scripts for installing dependencies on Ubuntu.
MIT License
0 stars 0 forks source link

Biblioteca do qt nao esta sendo achada por outras aplicacoes #3

Open Pvcunha opened 1 year ago

Pvcunha commented 1 year ago
          > > O erro do monitor era esperado?

vou tentar descobrir hoje, eu tinha visto ele já. Vou comparar as libs pra imagem pvcunha/robocin-2d:ubuntu-20.04 para essa. Mas esse arquivo que ele diz que ta faltando ta no caminho /opt/qt/5.15.2/lib, pelo que me recordo do que vi ontem... Enfim foi dar uma averiguada melhor

O problema no qt eh o seguinte, os .so nao estao sendo achados pelo container. Como pode ser visto na imagem (ldd eh um comando pra verificar dependencias de shared libraries) image

Portanto o que precisa ser feito eh adicionar o path /opt/qt/5.15.2/gcc_64/lib para procurar por biblioteca nesse diretorio. Para isso ser feito basta adicionar uma linha ao arquivo /etc/ld.so.conf.d/x86_64-linux-gnu.conf contendo o path das bibliotecas do qt. image

Em seguida precisamos "atualizar" as bibliotecas do sistema com o comando ldconfig, e temos o seguinte output no comando ldd image

e por fim o output esperado do rcssmonitor por nao ter display disponivel ainda: image

O proximo passo eh fazer isso de forma automatica pelo Dockerfile ou pelo script de instalacao do qt...

referencias: https://unix.stackexchange.com/questions/168340/where-is-ld-library-path-how-do-i-set-the-ld-library-path-env-variable https://www.gnu.org/software/grep/manual/grep.html https://manpages.ubuntu.com/manpages/trusty/man1/ldd.1.html

Originally posted by @Pvcunha in https://github.com/robocin/scripts-ubuntu-common/issues/2#issuecomment-1387303257

Pvcunha commented 1 year ago

Outra forma de lidar com o problema eh setando a variavel de ambiente LD_LIBRARY_PATH para o caminho desejado.

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/qt/5.15.2/gcc_64/lib/
$ ldconfig

image