[Interest] Qt 5.12 official build on Ubuntu 14.04

Thiago Macieira thiago.macieira at intel.com
Tue Mar 12 02:01:37 CET 2019


On Monday, 11 March 2019 03:56:59 PDT René J.V. Bertin wrote:
> One hurdle: my distribution uses dbus 1.6.x which lacks at least 1 function
> required by libQt5Dbus. I don't really want to risk rolling my own upgrade
> for that. So instead I installed dbus 1.12.12 into my usual /opt/local
> parallel prefix with a suffix on the binaries and configured to use the
> same runtime resources as the host dbus. That seems to work just fine,
> despite the fact that it communicates through an older dbus daemon and with
> other clients that will use the older libdbus library.

That shouldn't be a problem.

> I do observe something very curious and surprising. All my KF5 applications
> from /opt/local run just fine against this Qt 5.12 install, and a few of
> the simpler "pure Qt" applications do too (like qdbusviewer and even
> linguist). But most fail very quickly with this error:
> 
> %> /opt/Qt/5/5.12.1/thisQt.sh /opt/local/libexec/qt5/bin/assistant
> This application failed to start because it could not find or load the Qt
> platform plugin "xcb" in "".
[cut]
> When I set QT_DEBUG_PLUGINS=1 I see that only plugins from the /opt/local
> install are being loaded, yet I set QT_PLUGIN_PATH to list the 5.12 plugin
> directory first. For good measure I added an LD_PRELOAD of the 5.12
> libQt5Core to my wrapper; makes no difference.
> 
> The difference between these "pure Qt" and the KF5 applications is that the
> former are built via qmake, the latter via cmake. Can that explain a
> difference in rpath information set in the executables which makes the
> LD_LIBRARY_PATH trick fail in the former?

There shouldn't be anything explicitly causing this. So it must be a side 
effect or just a huge coincidence. If it's a side-effect, I imagine it's 
caused by the use of DT_RUNPATH in the ELF modules, or lack thereof. But I'm 
not convinced it's a build difference, you may be seeing a coincidence. Or, 
more likely, a *library* difference: something may be calling 
QCoreApplication::setLibraryPaths(). instead of 
QCoreApplication::addLibraryPath().

Can you attach the full stderr from QT_DEBUG_PLUGINS=1 run? Can you also make 
a simple QtCore application that prints the output of 
QCoreApplication::libraryPaths() ?

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products






More information about the Interest mailing list