Erro ao executar app
-
Não sei bem se o nome correto seria esse já que uso Linux, mas lá vai minha duvida, eu criei uma aplicação que lê dados da porta serial e plot em um gráfico, ate ai tudo ok , dei um build no projeto e tenho um arquivo aparentemente executável que funciona sem estar executando pelo qt.Quando fui executar o arquivo em outra maquina com o Linux da o seguinte erro :
error while loading shared libraries: libQt5SerialPort.so.5: cannot open shared object file: No such file or directory
Alguem pode me ajudar?
Grato
-
Tive um problema parecido, só que com windows...até agora não sei a causa, mas eu dei build novamente, só que em outra pasta. Ele gerou um outro executável que passou a funcionar....
Você pode tentar fazer isso....mas é só um chute... -
OK, maia vou te que instalar todo ambiente ou existe um pacote tipo runtime, só com as bibliotecas necessárias
-
Olá,
Terá que copiar junto com o executável todas as bibliotecas (.so) necessárias para rodar teu programa.
No linux: você tem que indicar para o programa a localização das bibliotecas pela variavel de ambiente 'ld_library_path', ou na compilação do programa através de 'rpath'.
No windows: pela variavel de ambiente 'PATH'. -
Tentei e só consegui achar qt4 para desenvolvimento acho que e o próprio qtcreator, alguem sabe como ?seria o caso de tentar o fórum internacional ?
-
A disponibilidade do pacote depende mesmo é da distribuição. Vai ver a sua não tem então. Nesse caso, copiar as bibliotecas, como o @ReinaldoJr sugeriu pode ser a saída. Aqui tem umas explicações:
http://doc.qt.io/qt-5/linux-deployment.html#creating-the-application-package
-
Leonardo, realmente algumas distribuições linux tem pacotes prontos, porém:
- Geralmente esses pacotes estão desatualizados, sendo assim, se você utilizar a versão mais recente do Qt, provavelmente dará erro.
- Linux tem pacotes prontos, alguns apenas, e windows oficialmente não tém.
Quanto a disponibilidade das libs para vários programas, em linux basta setar globalmente o 'path_das_libs' em LD_LIBRARY_PATH que todos os programas passam a buscar também neste 'path_das_libs'. Em windows setar em PATH, que também todos o programas iram buscar em 'path_das_libs'.
Fica á dica!
-
Valeu galera, fiz uns teste e copiei libQt5SerialPort.so.5 para a pasta /usr/lib, dai minha aplicação abre, só que quando peço pra detectar as portas seriais aparece o seguinte erro:
undefined symbol: _ZN7QString18toLocal8Bit_helperEPK5QChari
to em uma maquina com linux sem o qt creator instalado.
-
https://www.youtube.com/watch?v=wti-VDG5HrQ Não precisa instalar o SDK em todas as maquinas qfor usar, no windows basta abrir oshell e digitar windeployqt "<pastaparaoezecutavel" que ele gera uma sand box pro seu app, no linux é um pouco diferente http://doc.qt.io/qt-5/linux-deployment.html