[Development] Explicit linking vs dlopen/dlsym

Pau Garcia i Quiles pgquiles at elpauer.org
Wed Nov 19 11:38:41 CET 2014


Today I installed an snapshot of Qt 5.4.0 for Linux x86 on my Kubuntu 14.04
and found a problem: it links to libudev.so.0, while Ubuntu 14.04 provides

I was wondering if it would be a good idea for Qt to move from explicit
linking to dlopen/dlsym. That would help supporting different versions of a
certain library, and support different codepaths at runtime depending on
which one was found. Eg. libudev.so.0 or libudev.so.1, libstreamer-0.10.so
or libgstreamer-1.0.so, etc

Incidentally, MESA is doing that for udev already:


And the proprietary database Intersystems Caché has been doing that for
decades to ease the burden of support for many different platforms (these
guys supported VMS until not too long!). They do this for EVERY third party
dependency: libssh2, Xalan, Xerces-C, libodbc, Cenera (Samba), ICU, etc

Yes, code is a bit more complex, but support for newer and older platforms
is also easier because there is no need to recompile. Also, some customers
do not want "custom" versions of third-party libraries but only the
"official" one.

Pau Garcia i Quiles
(Due to my workload, I may need 10 days to answer)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20141119/d52af73d/attachment.html>

More information about the Development mailing list