linuxdeployqt
linuxdeployqt copied to clipboard
Dependencies of shared library are not correctly include in the AppImage
Hi,
I had many problems with my application, PlotJuggler.
I build a main executable and few dynamic libraries to be opened at run-time (dlopen). Unfortunately the dependencies of the latter are not correctly included in the AppImage.
This is my procedure: https://github.com/facontidavide/PlotJuggler/blob/2.3.5/appimage_howto.md
Both the executable and the plugin where located in the bin folder.
I build a main executable and few dynamic libraries to be opened at run-time (dlopen). Unfortunately the dependencies of the latter are not correctly included in the AppImage.
linuxdeployqt
has no way to know automatically about dlopen()
libraries.
You need to tell linuxdeployqt manually about those libraries like this:
linuxdeployqt*.Appimage (...) -executable path/to/dlopen/library.so -executable path/to/dlopen/library2.so
Then, those libraries and their dependencies will be deployed, too.
For the record, the libraries are deployed, but not their dependencies. I will try what you suggested
I tried but it does not work...
https://github.com/facontidavide/PlotJuggler/releases/download/2.3.6/PlotJuggler-2.3.6-x86_64.AppImage
The dependency libros_type_introspection.so is not included
"Cannot load library /tmp/.mount_PlotJuy7FsOd/libDataStreamROS.so: (libros_type_introspection.so: cannot open shared object file: No such file or directory)"
Where is libros_type_introspection.so
on your hard disk? Copy it to /usr/lib/x86_64-linux-gnu/
and run linuxdeployqt
again.
For the record, I never managed to fix this problem :(
Something that maybe I did not mention is that the incriminatory "missing dependency" (this time libboost_regex.so.1.58.0) is actually present in the folder usr/lib of the AppdDir
What happens if you use linuxdeployqt (...) -executable=<AppDir>/usr/lib/libboost_regex.so.1.58.0
?