Run Qt 5.3 on QNX 6.6



  • Hello.
    I'm trying to run Qt widget application on QNX 6.6 target.
    What I've done is below.

    • Install qt on Ubuntu 12.04 via qt-enterprise-linux-x86-qnx-5.3.1.run downloaded from Qt digia website.

    • Setup QNX 6.6 + Qt 5.3, Linux + Qt 5.3 kit on QtCreator.

    • Build 'helloqt' program via New Project -> Applications -> Qt Widget Application template without any modification that displays an empty window.

    • Run 'helloqt' for linux and it works properly.

    • Prepare QNX target with QNX 6.6 SDP + Graphics Patch

    • Copy 'helloqt' for QNX to /root/qt5test/ on target.

    • Copy below directories to /opt/qt5/ on QNX target.
      @ <QT_INSTALL_PATH>/5.3/qnx6-x86/lib
      <QT_INSTALL_PATH>/5.3/qnx6-x86/plugins
      <QT_INSTALL_PATH>/5.3/qnx6-x86/qml@

    • Add below to /root/.profile for environment setting.
      @ export LD_LIBRARY_PATH=/lib:/usr/lib:/lib/dll:/opt/qt5/lib:/opt/qnx6/x86/lib:/opt/qnx6/x86/usr/lib:/opt/qnx6/x86/lib/dll
      export QQNX_PHYSICAL_SCREEN_SIZE=150,90
      export QT_PLUGIN_PATH=/opt/qt5/plugins
      export QML2_IMPORT_PATH=/opt/qt5/qml
      export GRAPHICS_ROOT=/usr/lib/graphics/intel-drm@

    • run '/sbin/drm-intel' on QNX target.(my target has graphic processor from intel)

    • run 'screen'

    • run '/root/qt5test/helloqt'

    <Result>
    @# cd /root/qt5test/

    ./helloqt

    slog2_api: cannot connect to slogger2 server...errno=No such file or directory
    Error registering slogger2 buffer!
    This application failed to start because it could not find or load the Qt platform plugin "qnx".

    Available platform plugins are: minimal, offscreen, qnx.

    Reinstalling the application may fix this problem.
    Abort
    #@

    • Result is same no matter running drm-intel or screen.

    • Below is 'env' result.
      @_=/usr/bin/env
      SSH_CONNECTION=192.168.100.150 62661 192.168.100.177 22
      PATH=/sbin:/usr/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin
      SHELL=/bin/sh
      TMPDIR=/tmp
      HOSTNAME=localhost
      USER=root
      PROCESSOR=x86
      MAIL=/var/spool/mail/root
      LD_LIBRARY_PATH=/lib:/usr/lib:/lib/dll:/opt/qt5/lib:/opt/qnx6/x86/lib:/opt/qnx6/x86/usr/lib:/opt/qnx6/x86/lib/dll
      HOME=/root
      SSH_CLIENT=192.168.100.150 62661 22
      QNX_HOST=/
      QNX_TARGET=/
      GRAPHICS_ROOT=/usr/lib/graphics/intel-drm
      QQNX_PHYSICAL_SCREEN_SIZE=150,90
      TERM=xterm
      QML2_IMPORT_PATH=/opt/qt5/qml
      QT_PLUGIN_PATH=/opt/qt5/plugins
      QNX_CONFIGURATION=/etc/qnx
      SSH_TTY=/dev/ttyp1
      SYSNAME=nto
      LOGNAME=root@

    I'd googling but no luck and stuck on this.
    Please let me know if any additional information is needed and any suggestions would be appreciated.



  • Try set QT_DEBUG_PLUGINS=1 in your shell and watch console output



  • Thanks stuk. I set QT_DEBUG_PLUGINS=1 and output is below.

    36: Found metadata in lib /opt/qt5/plugins/platforms/libqqnx.so, metadata= ...
    ...
    51: loaded library "/opt/qt5/plugins/platforms/libqqnx.so"
    52: QLibraryPrivate::loadPlugin failed on "/opt/qt5/plugins/platforms/libqqnx.so" : "Cannot load library /opt/qt5/plugins/platforms/libqqnx.so: (Library cannot be found)"

    As output message, looks like some modules found libqqnx.so but QLibraryPrivate didn't.
    I'll post additional info if I figure out more about that.
    Any help would be appreciated.

    <Full output log>

    @QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5test/platforms" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/opt/qt5/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() looking at "/opt/qt5/plugins/platforms/libqminimal.so"
    Found metadata in lib /opt/qt5/plugins/platforms/libqminimal.so, metadata=
    {
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
    "MetaData": {
    "Keys": [
    "minimal"
    ]
    },
    "className": "QMinimalIntegrationPlugin",
    "debug": false,
    "version": 328449
    }

    Got keys from plugin meta data ("minimal")
    QFactoryLoader::QFactoryLoader() looking at "/opt/qt5/plugins/platforms/libqoffscreen.so"
    Found metadata in lib /opt/qt5/plugins/platforms/libqoffscreen.so, metadata=
    {
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
    "MetaData": {
    "Keys": [
    "offscreen"
    ]
    },
    "className": "QOffscreenIntegrationPlugin",
    "debug": false,
    "version": 328449
    }

    Got keys from plugin meta data ("offscreen")
    QFactoryLoader::QFactoryLoader() looking at "/opt/qt5/plugins/platforms/libqqnx.so"
    Found metadata in lib /opt/qt5/plugins/platforms/libqqnx.so, metadata=
    {
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
    "MetaData": {
    "Keys": [
    "qnx"
    ]
    },
    "className": "QQnxIntegrationPlugin",
    "debug": false,
    "version": 328449
    }

    Got keys from plugin meta data ("qnx")
    loaded library "/opt/qt5/plugins/platforms/libqqnx.so"
    QLibraryPrivate::loadPlugin failed on "/opt/qt5/plugins/platforms/libqqnx.so" : "Cannot load library /opt/qt5/plugins/platforms/libqqnx.so: (Library cannot be found)"
    This application failed to start because it could not find or load the Qt platform plugin "qnx".

    Available platform plugins are: minimal, offscreen, qnx.

    Reinstalling the application may fix this problem.
    Abort@



  • Strange, is there the /opt/qt5/plugins/platforms/libqqnx.so plugin?



  • Yes, as I wrote at first post, that directory contains these three files.
    @ libqminimal.so
    libqoffscreen.so
    libqqnx.so@

    And output said also

    Found metadata in lib /opt/qt5/plugins/platforms/libqqnx.so ...
    loaded library "/opt/qt5/plugins/platforms/libqqnx.so"

    I'm so curious why only QLibraryPrivate::loadPlugin failed to load.



  • How do you put these files? Are you sure all are compiled for qnx platform?



  • I use Qt Enterprise.
    Built binaries are provided for enterprise customer from Digia.

    In my first post,

    • Install qt on Ubuntu 12.04 via qt-enterprise-linux-x86-qnx-5.3.1.run downloaded from Qt digia website.

    That's the one contains pre-built binaries for qnx target.
    After install that <QT_INSTALL_PATH>/5.3/qnx6-x86/plugins/platforms has those files.

    BTW, you may ask why don't I ask to Digia, but they are on summer vacation and I'm urgent. :) And I posted this to Digia too.



  • If you use Qt Enterprise use the support that you buy :D Its rapid than this forum :)

    Summer Vacation?!?!? Enterprise Support?!?!?!? No don't believe!



  • I've posted this to Digia, Qt-Project, foundry27 and got some help from foundry27 and here but no answer from Digia.
    Local Digia reseller told me that they are on vacation.



  • Digia support is too slow. 1 answer per two days. :(



  • Have you found a solution for this problem? I am currently getting exactly the same error message (with Qt 5.4.1).



  • Have you found a solution for this problem? I am currently getting exactly the same error message (with Qt 5.4.1).



  • Ok, it seems to be a bug. See here: https://bugreports.qt.io/browse/QTBUG-44476



  • Ok, it seems to be a bug. See here: https://bugreports.qt.io/browse/QTBUG-44476



  • It's a little bit late to ask for help here, but I faced the same problem mentioned above. Environment variables are set and libraries are also present. Has anybody find out how to fix this bug? I'm targeting QNX 6.6 installed on VMWare.


Log in to reply