Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt - How to get|compile Mysql driver

I am trying to make a MySql-dependent app in Qt. After some time I came to know that my shared-build is not having MySql driver(by default). Can Anybody say how to get|compile it (both in shared and static).

Note: I am using Qt-4.7.2 in Windows platform

EDIT: Thanks to "vrince". This is the way he showed => I did.

 1)Open qt-command prompt 

 2)Goto (Qt's installation path)\qt\src\plugins\sqldrivers\mysql
   in my case:
   D:\TempInstallationFolder\Qt\dynamic-New\qt\src\plugins\sqldrivers\mysql

 3)qmake

 4)make 
   or
   mingw32-make (provided your PATH variable contains "(Qt installation path)\mingw\bin")

   ("make" should work if you didn't mess up with path variables. It in turn
    invokes mingw32-make. I messed up this a little bit. So I invoked 
    mingw32-make directly.)

 5)In the above  command you have to indicate the mysql's "lib" path, 
   and "include" path through the compile flag options. Or Add those lines
   in the pro file like below

   INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 5.1\include"
   LIBS += -L"C:\Program Files\MySQL\MySQL Server 5.1\lib\opt"

That's it. You can find the dlls in (Qt-installation path)\qt\plugins\sqldrivers

like image 489
prabhakaran Avatar asked Jun 26 '11 11:06

prabhakaran


1 Answers

If you plan to rebuild Qt linked to MySQL you can stop now you don't have to ! SQL drivers are plugins (by definition dynamically loaded at run time) and can be compiled independently.

Find the driver sources in the Qt source tree somthing like qt/src/plugins/sqldrivers/mysql then build it. The game here is to provide the proper MySQL development headers and libraries (client ones) so that the driver will build ! (Be aware if you are one windows it may be 32bits version of MySQL client you need even if you are running a 64bits OS).

You can provide MySQL path via the qmake command for that refer to the article given by Anton, personally I copy and change the .pro file to match my installation ... easier to rebuild later if needed.

Once the build succeeded, you will have a nice qsqlmysql.dll you must copy into the Qt dir you use to run you apps basically something like qt/plugins/sqldrivers in the $QT_DIR.

like image 159
Thomas Vincent Avatar answered Oct 22 '22 16:10

Thomas Vincent