[Development] Change in qt/qtbase[5.8]: utilize configure results better in native builds

René J.V. Bertin rjvbertin at gmail.com
Mon Jan 23 12:18:28 CET 2017


On Monday January 23 2017 10:30:50 Sérgio Martins wrote:

>Try running with QT_DEBUG_PLUGINS=1 and report back.

Hah, I think I was onto something, but it's not what I thought:

%> objdump -p systray-qt5/systray-qt5 | fgrep PATH
  RPATH                /opt/local/libexec/qt5/lib


As a result, all 5.8.0 platform plugins give an error like this:

%> env LD_LIBRARY_PATH=/opt/local/testing/libexec/qt5/lib QT_PLUGIN_PATH=/opt/local/testing/share/qt5/plugins QT_QPA_PLATFORM_PLUGIN_PATH=/opt/local/testing/share/qt5/plugins/platforms QT_DEBUG_PLUGINS=1 systray-qt5/systray-qt5
...
Found metadata in lib /opt/local/testing/share/qt5/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 329728
}
In /opt/local/testing/share/qt5/plugins/platforms/libqxcb.so:
  Plugin uses incompatible Qt library (5.8.0) [release]
...

and then finally the process fails with

Found metadata in lib /opt/local/share/qt5/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 329473
}
QLibraryPrivate::loadPlugin failed on "/opt/local/share/qt5/plugins/platforms/libqxcb.so" : "Cannot load library /opt/local/share/qt5/plugins/platforms/libqxcb.so: (/opt/local/libexec/qt5/lib/libQt5Core.so.5: version `Qt_5.8' not found (required by /opt/local/testing/libexec/qt5/lib/libQt5XcbQpa.so.5))"
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "/opt/local/testing/share/qt5/plugins/platforms".

IOW, I'll need to find a way to build that systray app in such a way that it contains RUNPATH instead of RPATH.

Is that what qmake 5.8.0 should do with the patch from this codereview in place? 

R.



More information about the Development mailing list