Unsolved Deploying Qt Application on Linux
-
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.
-
@sierdzio when i run linuxdeployqt , below warning i'm getting
ninetripod@X3399:~/Documents/build-linuxdeployqt-Desktop-Debug/bin$ ./linuxdeployqt /home/ninetripod/Documents/vistaro_04_12/vistaro_build/vistaroQtQuick -appimage -unsupported-allow-new-glibc WARNING: Not checking glibc on the host system. The resulting AppDir or AppImage may not run on older systems. This mode is unsupported and discouraged. For more information, please see https://github.com/probonopd/linuxdeployqt/issues/340 app-binary: "/home/ninetripod/Documents/vistaro_04_12/vistaro_build/vistaroQtQuick" appDirPath: "/home/ninetripod/Documents/vistaro_04_12/vistaro_build" relativeBinPath: "vistaroQtQuick" Keeping existing AppRun WARNING: Plugin "/usr/lib/aarch64-linux-gnu/qt5/plugins/platformthemes/libqgtk2.so" not found, skipping WARNING: Plugin "/usr/lib/aarch64-linux-gnu/qt5/plugins/styles/libqgtk2style.so" not found, skipping WARNING: "/home/ninetripod/Documents/vistaro_04_12/vistaro_build/qt.conf" already exists, will not overwrite.
i think this is the issue i guess.
-
@sierdzio said in Deploying Qt Application on Linux:
Does the AppImage run correctly when you launch it on the original machine (same where you compile and run linuxdeployqt on)?
yes it has worked correctly.
-
I don't think gtk style plugins are a problem, they have little to do with OpenGL lib.
-
@sierdzio i got to know that im building my linudeployqt on latest version of glibc, it should build on older version of glibc. so that it can be run on any newer version glibc as stated in https://github.com/probonopd/linuxdeployqt/issues/340
-
@sierdzio is there any other method to deploy qt apps on linux other than linuxdeployqt? if yes, could you please give me the steps for it.
-
@sharath If you read the link you posted you will find these parameters:
- -unsupported-allow-new-glibc
- -unsupported-bundle-everything
Did you try them?
-
@sharath said in Deploying Qt Application on Linux:
@sierdzio is there any other method to deploy qt apps on linux other than linuxdeployqt? if yes, could you please give me the steps for it.
Oh sure, there are other ways. I don't have any ready-made steps for them, thought.
You can:
- create an installer using Qt Installer Framework
- create DEB package
- create RPM package
- possibly create a snap package
- possibly create a flatpak package
linuxdeployqt is by far the easiest way.
-
@jsulm Thanks for your reply.
Yes i did all these step. when i given the flag -unsupported-bundle-everything, i get below error
ERROR: runPatchelf: "" ERROR: runPatchelf: "" ERROR: runPatchelf: "warning: working around a Linux kernel bug by creating a hole of 69632 bytes in \xE2\x80\x98/home/ninetripod/Documents/Test_vistaro/lib/libc.so.6\xE2\x80\x99\n" ERROR: findDependencyInfo: "/bin/bash: error while loading shared libraries: /home/ninetripod/Documents/Test_vistaro/lib/libc.so.6: file too short\n" ERROR: getBinaryRPaths: "objdump: error while loading shared libraries: /home/ninetripod/Documents/Test_vistaro/lib/libc.so.6: file too short\n" ERROR: Error reading rpath with patchelf "libmvPropHandling.so" : "patchelf: error while loading shared libraries: /home/ninetripod/Documents/Test_vistaro/lib/libc.so.6: file too short\n"