linuxdeployqt
linuxdeployqt copied to clipboard
Symlink libraries to allow loading shared objects on runtime
I have problem while loading shared objects on runtime. One of the libraries is trying to load libproj.so and fails, because there is missing symlink from libproj.so -> libproj.so.xx This can be fixed by deploying in two passes and manually symlinking libproj.so -> libproj.so.xx in /lib directory. But it would be much more convenient if linuxdeployqt copies all those symlinks from appropriate paths to /lib on its own
Why is the library trying to load libproj.so
rather than libproj.so.xx
? Couldn't that be changed in the library?
We use the ldd
tool to determine the libraries that need to be deployed. The ldd
tool has no knowledge of any symlinks that may or may not exist.
Beats me, I guess the library is trying to be loaded separately by other dependencies. The point is, libproj.x.y is linked dynamically and included correctly, but the generic symlinks are not.
Well AFAIK those library symlinks always reside in the same directory just with generic name without version number. Linuxdeployqt can check for them manualy. Does this sound way too hacky?
Could be done, but it would increase code complexity and complexity of the resulting AppDir/AppImage and I am hesitant to make things more complex to handle some rare edge cases like this one, which can be handled by running linuxdeployqt
twice.
Let's keep this issue open and see whether others are running into this issue, too.