La documentation de Qt est assez incomplete quant aux instructions de compilation et d'installation du module QMYSQL avec MinGW sous Windows, en utilisant un environement opensource. Cet aspect a ete couvert dans plusieurs discussions de ce forum ou ailleurs, mais toutes font appel a une recompilation de Qt avec le support de MySQL. Cette recompilation est parfois delicate et une erreur de packaging de Qt, qui embarque des fichiers tmp, provoque des problemes (cf http://bugreports.qt.nokia.com/browse/QTWEBSITE-81 pour la liste des fichiers a effacer).

Or il existe une methode moins lourde, qui consiste a ne recompiler que le module MySQL, qui sera charge automatiquement par Qt, et qui ne necessite pas la recompilation de Qt avec -qt-sql-mysql.

  1. Installer les headers C de MySQL dans un chemin n'utilisant pas d'espaces, ex: C:\Dev\MySQL. On peut utiliser l'installeur .msi, par ex. mysql-essential-5.1.53-win32.msi. Installer egalement le client/serveur (car nous aurons besoin de libmysql.dll plus tard), celui-ci peut etre place dans "Program Files" ou autre chemin avec des espaces.
  2. Installer Qt. Utiliser l'installeur (ex: qt-sdk-win-opensource-2010.05.exe), et installer par exemple dans C:\Dev\Qt\2010.05\qt. La encore ne pas utiliser d'espaces.
  3. Telecharger mingw-utils-0.3.tar.gz a partir de Sourceforge (lien direct: http://sourceforge.net/projects/ming...ar.gz/download). Note que la version 0.4.x ne fonctionne pas. Installer ces utilities dans votre bin de MinGW, ou bien dans celle qui vient avec Qt (par ex.: C:\Dev\Qt\2010.05\qt\mingw\bin).
  4. Ouvrir un Qt command prompt. On commence par compiler un fichier object statique compatible avec mingw32-gcc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd C:\Dev\MySQL\lib\opt
    reimp -d libmysql.lib
    Ceci cree le fichier LIBMYSQL.def.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dlltool -k -d libmysql.def -l libmysql.a
    Ceci cree le fichier libmysql.a.
  5. On compile ensuite le module QMYSQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cd C:\Dev\Qt\2010.05\qt\src\plugins\sqldrivers\mysql
    qmake "INCLUDEPATH+=C:\Dev\MySQL\include" "LIBS+=-LC:\Dev\MySQL\lib\opt -lmysql" mysql.pro
    mingw32-make
    mingw32-make install
  6. Verifier que les fichiers du plugin ont bien ete crees et installes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:\Dev\Qt\2010.05\qt\plugins\sqldrivers\libqsqlmysql4.a
    C:\Dev\Qt\2010.05\qt\plugins\sqldrivers\libqsqlmysqld4.a
    C:\Dev\Qt\2010.05\qt\plugins\sqldrivers\qsqlmysql4.dll
    C:\Dev\Qt\2010.05\qt\plugins\sqldrivers\qsqlmysqld4.dll
  7. Copier libmySQL.dll (que l'on trouve dans l'installation client/serveur de MySQL) dans C:\Dev\Qt\2010.05\qt\bin\. Cela permettra a Qt Creator de fonctionner directement avec le plugin QMYSQL lors de son appel dans le code.


Voila! Note: il faudra sans doute distribuer vos applications avec les dll qui vont bien.

Sources de ce topic:
http://www.qtcentre.org/threads/2142...ELP-ME.-Thanks
http://bugreports.qt.nokia.com/brows...mmentId=134340