|
|
On 4/9/24 20:49 'Albrecht Schlosser' via fltk.coredev wrote:
FLTK
loads the GTK filechooser dynamically if it is found on the system
and if it is not disabled by the user or system option
Fl::option(OPTION_PRINTER_USES_GTK). That's why it doesn't show up
in
linked dependencies. Look for 'libgtk' in the FLTK sources, e.g.
`git
grep libgtk`. Looks like the library is either "libgtk-3" or
"libgtk-x11-2.0" but this may not help you.
While I wrote about "symbol prefixing" in another post I remembered
that the dynamic loading of libgtk was one of the
reasons why we introduced "symbol prefixing" in our bundled image
libs. It turned out that libgtk depends on a lot of stuff, but
particularly on libjpeg and libpng and indirectly on zlib. W/o going
into details: this caused crashes when different ABI's were present
because symbols (function entry points) were incorrectly resolved.
Since the GTK filechooser can show previews of images and some
icons...
TL;DR: if there's a chance that your user has any library both FLTK
(your image) *and* libgtk depend on and if there may be different
versions on your build system and the user's system, then ... see
above: ABI mismatch can cause unforeseeable effects.
FYI, on my system we have this very long list of dependencies:
$ lddtree /usr/lib/x86_64-linux-gnu/libgtk-3.so
/usr/lib/x86_64-linux-gnu/libgtk-3.so (interpreter => None)
libgdk-3.so.0 => /lib/x86_64-linux-gnu/libgdk-3.so.0
libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0
libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0
libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0
libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1
libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6
libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1
libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1
libXdamage.so.1 => /lib/x86_64-linux-gnu/libXdamage.so.1
libXcomposite.so.1 => /lib/x86_64-linux-gnu/libXcomposite.so.1
libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2
libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1
libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0
libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0
libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1
libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1
ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1
libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0
libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0
libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1
libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16
libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1
libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1
libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3
libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2
libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0
libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0
libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0
libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0
libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1
libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0
libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2
libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
libjpeg.so.62 => /lib/x86_64-linux-gnu/libjpeg.so.62
libatk-1.0.so.0 => /lib/x86_64-linux-gnu/libatk-1.0.so.0
libepoxy.so.0 => /lib/x86_64-linux-gnu/libepoxy.so.0
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6
libatk-bridge-2.0.so.0 => /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
libatspi.so.0 => /lib/x86_64-linux-gnu/libatspi.so.0
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0
libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1
liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1
libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
Good luck!
--
You received this message because you are subscribed to the Google Groups "fltk.coredev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkcoredev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkcoredev/c5a9e584-dbb6-4d93-8459-5ca8b831d526%40aljus.de.
[ Direct Link to Message ] | |
|
| |