linuxdeployqt icon indicating copy to clipboard operation
linuxdeployqt copied to clipboard

Dependencies of shared library are not correctly include in the AppImage

Open facontidavide opened this issue 4 years ago • 6 comments

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.

facontidavide avatar Oct 17 '19 20:10 facontidavide

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.

probonopd avatar Oct 17 '19 20:10 probonopd

For the record, the libraries are deployed, but not their dependencies. I will try what you suggested

facontidavide avatar Oct 17 '19 21:10 facontidavide

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)"

facontidavide avatar Oct 17 '19 21:10 facontidavide

Where is libros_type_introspection.so on your hard disk? Copy it to /usr/lib/x86_64-linux-gnu/ and run linuxdeployqt again.

probonopd avatar Oct 17 '19 22:10 probonopd

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

facontidavide avatar Aug 13 '20 18:08 facontidavide

What happens if you use linuxdeployqt (...) -executable=<AppDir>/usr/lib/libboost_regex.so.1.58.0?

probonopd avatar Aug 14 '20 03:08 probonopd