como posso executar uma aplicação qt em outro pc a partir do que foi desenvolvido em

0

Eu só quero dar o executável, e talvez deixar o outro usuário (também executando o Ubuntu) fazer o download da biblioteca qt5 (versão sem desenvolvimento) para executar o aplicativo.

Eu não estou interessado em compilar uma versão estática do qt apenas para tornar esse executável independente.

checando com ldd eu peguei as bibliotecas específicas que parecem necessárias

sudo apt-get install libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5printsupport5

diz que eu já tenho as versões mais recentes instaladas.

Ainda assim, o aplicativo não é executado. o que está errado? quais bibliotecas de tempo de execução devo obter para que o executável encontre todos os símbolos?

    
por nass 08.12.2016 / 21:37

1 resposta

2

Eu acredito que existem vários métodos que podem ser usados. Eu listei um método abaixo e este é o método recomendado na documentação de implantação que eu forneci no comentário.

Estou usando um novo projeto de aplicativo Qt Widgets padrão chamado HelloWorld para este exemplo e isso foi compilado no modo de versão e o arquivo resultante é chamado "HelloWorld". Este exemplo também assume que você está usando x64.

Supondo que começamos com uma pasta raiz chamada MyApp, copie o executável "HelloWorld" para ele. As seguintes bibliotecas precisam ser copiadas de QtInstallationFolder / gcc_64 / lib para esta pasta:

  • libicudata
  • libicui18n
  • libicuuc
  • libQt5Core
  • libQt5DBus
  • libQt5Gui
  • libQt5Widgets
  • libQt5XcbQpa

Além disso, copie a seguinte biblioteca de QtInstallationFolder / gcc_64 / plugins / platforms para MyApp / plataformas:

  • libqxcb

Copie e cole o seguinte em um editor de texto e salve-o na pasta MyApp como HelloWorld.sh:

#!/bin/sh
appname='basename $0 | sed s,\.sh$,,'

dirname='dirname $0'
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"

Você poderá então executar o aplicativo a partir da pasta raiz do aplicativo com:

./HelloWorld.sh

O acima representa as bibliotecas mínimas necessárias para um aplicativo GUI. Se você usar esse método para seu aplicativo e usar outras bibliotecas além das listadas acima, também será necessário copiá-las para a pasta MyApp raiz. Além disso, quando você cria o arquivo .sh, use o nome do seu aplicativo.

Espero que ajude.

    
por gsxruk 09.12.2016 / 19:49