Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. Programme QT ne reconnait les drivers MYSQL

Programme QT ne reconnait les drivers MYSQL

Scheduled Pinned Locked Moved Unsolved French
qt5.6sqlitedriver pluginsdriversyocto
6 Posts 2 Posters 1.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    nikoPol
    wrote on last edited by
    #1

    Bonjour,

    Je reprends le travail d'un ancien salarié de ma boite. L'ancien salarié a créer un OS grâce à Yocto pour un ARM.
    Sur cet OS, il y a QT5.6.3 d'installé. Le programme QT est compilé sur un PC avec le SDK adéquat. Le fichier binaire de Qt après un qmake et un make est exécuté sur l'ARM.

    #include <QtSql>
    #include <QSqlDatabase>
    #include <QDebug>
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
        qDebug() << QSqlDatabase::drivers();
    }
    

    Lorsque j’exécute ce code sur le PC j'ai : ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
    Mais lorsque je l'exécute sur l'ARM je n'ai rien : ()

    Sur l'ARM, dans mon /usr/lib/qt5/plugins j'ai :

    audio                  iconengines            platforminputcontexts  playlistformats        xcbglintegrations
    bearer                 imageformats           platforms              qmltooling
    generic                mediaservice           platformthemes
    

    Et même si je rajoute la librairie sqldrivers avec les fichierslibqsqlite.so libqsqlmysql.so libqsqlodbc.so libqsqlpsql.so

    audio                  iconengines            platforminputcontexts  playlistformats        xcbglintegrations
    bearer                 imageformats           platforms              qmltooling
    generic                mediaservice           platformthemes         sqldrivers
    

    Le programme fait la même chose.

    Merci par avance.

    KroMignonK 1 Reply Last reply
    0
    • N nikoPol

      Bonjour,

      Je reprends le travail d'un ancien salarié de ma boite. L'ancien salarié a créer un OS grâce à Yocto pour un ARM.
      Sur cet OS, il y a QT5.6.3 d'installé. Le programme QT est compilé sur un PC avec le SDK adéquat. Le fichier binaire de Qt après un qmake et un make est exécuté sur l'ARM.

      #include <QtSql>
      #include <QSqlDatabase>
      #include <QDebug>
      
      int main(int argc, char *argv[])
      {
          QCoreApplication a(argc, argv);
          qDebug() << QSqlDatabase::drivers();
      }
      

      Lorsque j’exécute ce code sur le PC j'ai : ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
      Mais lorsque je l'exécute sur l'ARM je n'ai rien : ()

      Sur l'ARM, dans mon /usr/lib/qt5/plugins j'ai :

      audio                  iconengines            platforminputcontexts  playlistformats        xcbglintegrations
      bearer                 imageformats           platforms              qmltooling
      generic                mediaservice           platformthemes
      

      Et même si je rajoute la librairie sqldrivers avec les fichierslibqsqlite.so libqsqlmysql.so libqsqlodbc.so libqsqlpsql.so

      audio                  iconengines            platforminputcontexts  playlistformats        xcbglintegrations
      bearer                 imageformats           platforms              qmltooling
      generic                mediaservice           platformthemes         sqldrivers
      

      Le programme fait la même chose.

      Merci par avance.

      KroMignonK Offline
      KroMignonK Offline
      KroMignon
      wrote on last edited by
      #2

      @nikoPol Bonjour, une première chose serait de vérifier que l'installation de Qt a été faite avec les plugins SQL et qu'il est possible de les charger.

      Pour cela, il faut lancer le programme avec QT_DEBUG_PLUGINS=1.
      Par exemple, si le programme se nomme sqltest : QT_DEBUG_PLUGINS=1 ./sqltest

      De cette façon, le framework Qt va écrire sur la sortie standard tout ce qu'il est capable de trouver et charger comme plugin.

      It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

      1 Reply Last reply
      2
      • N Offline
        N Offline
        nikoPol
        wrote on last edited by
        #3

        Bonjour,

        Tout d'abord merci de votre réponse.

        J'obtiens :

        root@machine-am335x-evmsk:~# QT_DEBUG_PLUGINS=1 ./Projet
        
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5/plugins/sqldrivers" ...
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so"
        QElfParser: '/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so' is an invalid ELF object (wrong cpu architecture)
        "'/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so' is an invalid ELF object (wrong cpu architecture)"
                 not a plugin
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so"
        QElfParser: '/usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so' is an invalid ELF object (wrong cpu architecture)
        "'/usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so' is an invalid ELF object (wrong cpu architecture)"
                 not a plugin
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so"
        QElfParser: '/usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so' is an invalid ELF object (wrong cpu architecture)
        "'/usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so' is an invalid ELF object (wrong cpu architecture)"
                 not a plugin
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so"
        QElfParser: '/usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so' is an invalid ELF object (wrong cpu architecture)
        "'/usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so' is an invalid ELF object (wrong cpu architecture)"
                 not a plugin
        QFactoryLoader::QFactoryLoader() checking directory path "/home/root/sqldrivers" ...
        QFactoryLoader::QFactoryLoader() looking at "/home/root/sqldrivers/libqsqlite.so"
        QElfParser: '/home/root/sqldrivers/libqsqlite.so' is an invalid ELF object (wrong cpu architecture)
        "'/home/root/sqldrivers/libqsqlite.so' is an invalid ELF object (wrong cpu architecture)"
                 not a plugin
        QFactoryLoader::QFactoryLoader() looking at "/home/root/sqldrivers/libqsqlmysql.so"
        QElfParser: '/home/root/sqldrivers/libqsqlmysql.so' is an invalid ELF object (wrong cpu architecture)
        "'/home/root/sqldrivers/libqsqlmysql.so' is an invalid ELF object (wrong cpu architecture)"
                 not a plugin
        QFactoryLoader::QFactoryLoader() looking at "/home/root/sqldrivers/libqsqlodbc.so"
        QElfParser: '/home/root/sqldrivers/libqsqlodbc.so' is an invalid ELF object (wrong cpu architecture)
        "'/home/root/sqldrivers/libqsqlodbc.so' is an invalid ELF object (wrong cpu architecture)"
                 not a plugin
        QFactoryLoader::QFactoryLoader() looking at "/home/root/sqldrivers/libqsqlpsql.so"
        QElfParser: '/home/root/sqldrivers/libqsqlpsql.so' is an invalid ELF object (wrong cpu architecture)
        "'/home/root/sqldrivers/libqsqlpsql.so' is an invalid ELF object (wrong cpu architecture)"
                 not a plugin
        ()
        

        Que faire ?

        KroMignonK 1 Reply Last reply
        0
        • N nikoPol

          Bonjour,

          Tout d'abord merci de votre réponse.

          J'obtiens :

          root@machine-am335x-evmsk:~# QT_DEBUG_PLUGINS=1 ./Projet
          
          QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5/plugins/sqldrivers" ...
          QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so"
          QElfParser: '/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so' is an invalid ELF object (wrong cpu architecture)
          "'/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so' is an invalid ELF object (wrong cpu architecture)"
                   not a plugin
          QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so"
          QElfParser: '/usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so' is an invalid ELF object (wrong cpu architecture)
          "'/usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so' is an invalid ELF object (wrong cpu architecture)"
                   not a plugin
          QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so"
          QElfParser: '/usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so' is an invalid ELF object (wrong cpu architecture)
          "'/usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so' is an invalid ELF object (wrong cpu architecture)"
                   not a plugin
          QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so"
          QElfParser: '/usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so' is an invalid ELF object (wrong cpu architecture)
          "'/usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so' is an invalid ELF object (wrong cpu architecture)"
                   not a plugin
          QFactoryLoader::QFactoryLoader() checking directory path "/home/root/sqldrivers" ...
          QFactoryLoader::QFactoryLoader() looking at "/home/root/sqldrivers/libqsqlite.so"
          QElfParser: '/home/root/sqldrivers/libqsqlite.so' is an invalid ELF object (wrong cpu architecture)
          "'/home/root/sqldrivers/libqsqlite.so' is an invalid ELF object (wrong cpu architecture)"
                   not a plugin
          QFactoryLoader::QFactoryLoader() looking at "/home/root/sqldrivers/libqsqlmysql.so"
          QElfParser: '/home/root/sqldrivers/libqsqlmysql.so' is an invalid ELF object (wrong cpu architecture)
          "'/home/root/sqldrivers/libqsqlmysql.so' is an invalid ELF object (wrong cpu architecture)"
                   not a plugin
          QFactoryLoader::QFactoryLoader() looking at "/home/root/sqldrivers/libqsqlodbc.so"
          QElfParser: '/home/root/sqldrivers/libqsqlodbc.so' is an invalid ELF object (wrong cpu architecture)
          "'/home/root/sqldrivers/libqsqlodbc.so' is an invalid ELF object (wrong cpu architecture)"
                   not a plugin
          QFactoryLoader::QFactoryLoader() looking at "/home/root/sqldrivers/libqsqlpsql.so"
          QElfParser: '/home/root/sqldrivers/libqsqlpsql.so' is an invalid ELF object (wrong cpu architecture)
          "'/home/root/sqldrivers/libqsqlpsql.so' is an invalid ELF object (wrong cpu architecture)"
                   not a plugin
          ()
          

          Que faire ?

          KroMignonK Offline
          KroMignonK Offline
          KroMignon
          wrote on last edited by KroMignon
          #4

          @nikoPol Bonjour, c'est pourtant simple, vous avez installé des plugins qui sont pas les bons... Je pense que vous avez copié les plugins de votre station de travail (certainement x86) sur votre cible (qui est un processeur ARM).

          Il vous faut compiler les plugins SQL pour votre cible, donc mettre à jour votre image Yocto et installer la nouvelle image sur votre cible.

          It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

          1 Reply Last reply
          2
          • N Offline
            N Offline
            nikoPol
            wrote on last edited by
            #5

            Ok, je vous remercie.
            Il n'y a pas d'autre moyen d'avoir les librairies dans le format nécessaire : ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV) ?

            KroMignonK 1 Reply Last reply
            0
            • N nikoPol

              Ok, je vous remercie.
              Il n'y a pas d'autre moyen d'avoir les librairies dans le format nécessaire : ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV) ?

              KroMignonK Offline
              KroMignonK Offline
              KroMignon
              wrote on last edited by KroMignon
              #6

              @nikoPol said in Programme QT ne reconnait les drivers MYSQL:

              Il n'y a pas d'autre moyen

              Non, il faut compiler les drivers pour votre cible avec les paramètres adéquats, soit directement à partir de Yocto, soit "à la main", à partir des sources de Qt.

              Peut-être que ce lien pourra vous être utile: https://www.udoo.org/forum/threads/solved-how-to-use-sql-model-with-qt5-layer.5136/

              Désolé, je n'ai que des connaissances de base concernant Yocto... Et ca fait bien 3 ans que je ne l'ai plus mis en oeuvre!

              It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved