Unsolved Deploying Qt Application on Linux
-
Hi,
i want to deploy my app on other Linux machine without installing Qt on it. I have followed linuxdeployqt but i couldn't make it work.
Processor type: aarch64
Qt version: 5.9.5
OS: GNU/LinuxCould you please provide me some easy steps?
Thanks in advance.
-
@sharath said in Deploying Qt Application on Linux machine:
but i couldn't make it work
Please write what exactly didn't work.
-
hi @jsulm ,
Thanks for the reply,
when i run this command
./linuxdeployqt-6-x86_64.AppImage /path/to/app/usr/share/applications/vistaroQtQuick.desktop
i get the below error:
bash: ./linuxdeployqt-6-x86_64.AppImage: cannot execute binary file: Exec format error
-
@sharath said in Deploying Qt Application on Linux:
Exec format error
Looks like you're trying to execute x86_64 binary on ARM or x86 which can't work. On which machine (PC, target device,...) do you execute it?
Also, did you made linuxdeployqt-6-x86_64.AppImage executable?
-
@jsulm i was trying to build linuxdeployqt and try to create .appImage from my machine. i didn't get how to create app image from linuxdeployqt source.
Can u please tell me how to create and get appImage of linuxdeployqt for ARM? -
@sharath Please be more precise. You downloaded linuxdeployqt-6-x86_64.AppImage from https://github.com/probonopd/linuxdeployqt/releases, is this correct?
I already asked, but once more:- Did you mark it as executable?
- Do you execute it on an x86_64 machine
"Can u please tell me how to create and get appImage of linuxdeployqt for ARM?" - as described here https://github.com/probonopd/linuxdeployqt
Or here https://doc.qt.io/qt-5/linux-deployment.html "Creating the Application Package".
-
@jsulm said in Deploying Qt Application on Linux:
Did you mark it as executable?
yes i did
Do you execute it on an x86_64 machine
No i didn't execute it on x86_64 machine -
@sharath said in Deploying Qt Application on Linux:
No i didn't execute it on x86_64 machine
Well, since it's x86_64 binary it will not work on anything else.
Do it on your PC. And then follow the instructions to deploy.One question: do you do cross compilation or do you build/deploy directly on your device?
-
@jsulm said in Deploying Qt Application on Linux:
One question: do you do cross compilation or do you build/deploy directly on your device?
i'm building directly on target device.
-
@sharath said in Deploying Qt Application on Linux:
@jsulm said in Deploying Qt Application on Linux:
One question: do you do cross compilation or do you build/deploy directly on your device?
i'm building directly on target device.
Then you need to compile linuxdeployqt on that device, too. Building instructions are in a file called BUILDING https://github.com/probonopd/linuxdeployqt/blob/master/BUILDING.md
-
Thanks @sierdzio, i will try this
-
hello @sierdzio, i compiled linuxdeployqt on my device and trying to run below command
./linuxdeployqt /path/to/appbinary -appimage
i get following error
linuxdeployqt 6 (commit 5195ec1), build <local dev build> built on 2019-12-10 05:35:49 UTC ERROR: The host system is too new. Please run on a system with a glibc version no newer than what comes with the oldest currently still-supported mainstream distribution (xenial), which is glibc 2.23. This is so that the resulting bundle will work on most still-supported Linux distributions. For more information, please see https://github.com/probonopd/linuxdeployqt/issues/340
-
There's an alternative that's supposed to work on newer Linux systems:
https://github.com/linuxdeploy/linuxdeploy -
@sharath said in Deploying Qt Application on Linux:
i get following error
Well, what do you expect from me? The error message tells you exactly what to do. Use an older operating system so that glibc is older.
Or use
-unsupported-allow-new-glibc
flag to suppress this error. -
Thanks @sierdzio, it has worked and created all dependent libraries.
But when i take this app and run this in other machine i get below error
./AppRun: error while loading shared libraries: libGLdispatch.so.0: cannot open shared object file: No such file or directory
-
Do you run linuxdeployqt with
-appimage
flag? Try running it twice, it sometimes helps.Does your other machine have OpenGL libraries installed? Does it support OpenGL at all?
-
@sierdzio said in Deploying Qt Application on Linux:
Do you run linuxdeployqt with -appimage flag? Try running it twice, it sometimes helps.
Does your other machine have OpenGL libraries installed? Does it support OpenGL at all?i ran linuxdeployqt with -appimage many times and also openGL is installed on my target system.
i'm getting same issue
-
OK then. Run with
-verbose=3
and look at the output - perhaps there is some warning there that is important for you in this case.You can try running deploy first without appimage flag, then copy the OpenGL library manually into the package, then run linuxdeployqt again with
-appimage
.Lastly, maybe
-extra-plugins=
flag can be used to force linuxdeployqt to deploy that library. -
@sierdzio thank you for your support, I don't know why this shows diff errors.
./app: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /home/ninetripod/Documents/Vistaro_linux_1.0/bin/libopencv_core.so.4.0) ./app: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /home/ninetripod/Documents/Vistaro_linux_1.0/bin/libopencv_imgproc.so.4.0) ./app: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /home/ninetripod/Documents/Vistaro_linux_1.0/bin/libtbb.so.2) ./app: /lib/aarch64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /home/ninetripod/Documents/Vistaro_linux_1.0/bin/libpng16.so.16)
-
Does the AppImage run correctly when you launch it on the original machine (same where you compile and run linuxdeployqt on)?
I don't have any further ideas.