Qt 5.7 Deployment para GNU/Linux
-
Que tal,
Tengo una aplicación en Windows que he logrado hacer el deployment de manera exitosa con el windeployqt.exe que se incluye en el path de instalación de Qt.
Quisiera hacer el deployment para la misma aplicación, ahora desarrollada en Ubuntu 16.04, pero no he encontrado alguna herramienta similar a windeplyqt para GNU/Linux, el único método que he encontrado es el que se muestra aqui.Existen mas opciones o el método del link es el mejor para hacer el deployment de las aplicaciones en GNU/Linux?
Saludos
PD: Recién comienzo a usar Qt, todo lo he aprendido por mi cuenta así que puedo estar olvidando algo obvio :D.
-
Una pregunta muy interesante. A mi también me interesa mucho. Si averiguas cómo hacerlo, por favor, publíca qué pasos has realizado.
-
Hola Jonathan, no he podido avanzar, deje de usar Qt por unas semanas y ahora me tira errores al abrir y cerrar Qt Creator, voy a instalarlo de nuevo y seguir con la búsqueda.
En los comentarios de este video mencionan el uso del comando ldd pero no lo he usado aun.
Saludos -
PT-BR
Amigo boa tarde.
Um dos maiores problemas no Linux ou no MacOSX, é ao gerar um binário nessas plataformas, dá muito trabalho para funcionar em outros locais.Mesmo copiando as dependências para o diretório as bibliotecas Qt5Core Qt5Widgets Qt5Gui... o executável não funciona.
Uma dica simples para esses ambientes é colocar esse código em seu arquivo .PRO
linux { QMAKE_LFLAGS += -Wl,-rpath,\\$\$ORIGIN }
Isso faz com que o binário busque as dependências a partir do diretório onde está o executável.
Use a linha de comandos no diretório do seu executável, e verifique com o comando ldd quais as dependências necessárias para seu executável.
ldd <app>
Com isso não terá problemas.
Espero ter ajudado.
-
Hi joaopagotto,
(I do not know Portuguese so i will reply you on English, hope it is not a problem)
Indeed it is a problem building binaries for GNU/Linux, i will try to add the code you point out in the .pro file and see how it goes.Thanks for the help
Carlos -
Legal friend, please report us if succeeded . I had many problems in the past with Linux and IOS and this code perdaço solved my problems. Stay tuned with executable dependencies using LDD . Have a Linux virtual machine to be able to test in an environment without the Qt development suite . I usually use Ubuntu Destkop with updates only .
-
Hi joaopagotto,
I made a reduced version of the application and before addinglinux { QMAKE_LFLAGS += -Wl,-rpath,\\$\$ORIGIN }
to the .pro file i couldn't run the executable from command line, now after adding that code i'm able to run it, but i haven't test it on other machines.
[OT] I have a silly question, i'm using libUSB library, and to load it on Windows i have to add:
LIBS += -L$$PWD -lusb-1.0
to the .pro file, so i did add this code to the .pro file:
windows { LIBS += -L$$PWD -lusb-1.0 }
is this the correct way to do it?, i'm not having problems but i would like to know if its correct to do it that way.
Thanks for the help :)
En caso de que alguien quiera ver la aplicación esta en este repositorio, se pretende transferir datos entre la PC y un microcontrolador vía USB HID. Se acepta feedback, ya que todo lo estoy aprendiendo de forma autodidacta y seguro hay mejores formas de implementar la aplicación.
Carlos
-
Es obligatorio instalar las dependencias de Linux basado en APT en los equipos de destino .
Si el libusb - 1.0-0 es una dependencia de su programa , debe ejecutar el comando :El desarrollo de la máquina :
apt-get install libusb-1.0-0-dev
Producción:
apt-get install libusb-1.0-0-dev
Instalación automática de esta dependencia se resuelve mediante la creación de un paquete
deb para su Ubuntu , hay que especificar las dependencias que busca el repositorio de Linux
y continuar con la instalación .Si era útil que mi ayuda considerar un like; )
-
@joaopagotto Cierto, son de mucha ayuda tus consejos, no sabia que se podian dar likes aca haha.
Con respecto a la generación de .deb para ubuntu, estoy muy lejos de eso, como decia todo lo estoy aprendiendo dea poco, ahora que lo mencionas seria excelente aprenderlos a generar.
Saludos