Home > Без рубрики > Как собрать драйвер MySQL для Qt под Win

Как собрать драйвер MySQL для Qt под Win

Если при попытке использовать MySQL, ваше приложение выдает ошибку «mysql driver not loaded», то чаще всего это может быть по следующим причинам: вы забыли подключить SQL модуль в файле проекта, либо вы еще не настроили у себя поддержку этих драйверов. Так как изначально Qt идет без поддержки драйверов MySQL, то эти драйвера надо собирать самим. К счастью это не составит большого труда, расмотрим весь процесс по пунктам.

1. Скачиваем и устанавливаем Qt SDK. При установке обязательно выбираем пункт установить Qt Sources.

2. Скачиваем и устанавливаем MySQL. Все устанавливать не обязательно, но главное отметить к установке пункт «Client C API Library».

3. Далее: Меню «Пуск» -> «Все программы» -> «Qt SDK» -> «Desktop» -> «Qt 4.8.1 for Desktop (MingW)».

4. В открившейся консоли выполняем такие команды(предварительно отредактируйте пути на свой лад):

set mysql=C:\PROGRA~1\MySQL\MYSQLS~1.0\
cd C:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql\

qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\opt\libmysql.lib" -o Makefile mysql.pro
mingw32-make

qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\opt\libmysql.lib" -o Makefile mysql.pro "CONFIG+=release"
mingw32-make

Проверьте чтобы все команды выполнились без ошибок.
Внимание! Если у вас MySQL установлен в похожую папку на мою:

C:\Program Files\MySQL\MySQL Server 5.0\

то вам необходимо привести путь в такой вид:

C:\PROGRA~1\MySQL\MYSQLS~1.0\

Если испытываете затруднения с таким переводом, то путь можно посмотреть через Volkov Commander.

5. По итогам выполнения, вы найдете две новые директории: debag и release, созданные в текущей папке. В папке debag вы найдете файлы libqsqlmysqld4.a и qsqlmysqld4.dll, в то время как в папке release вы найдете libqsqlmysql4.a и qsqlmysql4.dll. Скопируйте эти файлы в папку:

C:\QtSDK\Desktop\Qt\4.8.1\mingw\plugins\sqldrivers\

6. Скопируйте libmysql.dll из папки MySQL в папку:

C:\WINDOWS\

7. Чтобы протестить, создайте новый проект с таким кодом:

#include <QApplication>
#include <QtSql>

int main(int argc, char *argv[])
{
  QCoreApplication a(argc, argv);
  qDebug() << QSqlDatabase::drivers();
  return a.exec();
}

Проверьте что в файле проекта(*.pro) добавлен SQL модуль:

QT += sql

Если все успешно, то в результате исполнения кода, в списке поддерживаемых драйверов:

("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC")

будет присутствовать QMYSQL.
Проверено на: MySQL Server 5.0, Qt 4.8.1, Windows XP.

  1. Ответить Алексей
    13/05/31

    Премного благодарен за понятную и толковую статью! Много времени убил пытаясь связать sql с qt, много форумов прочитано, много драйверов и утилит скачано, но не сросталось чего-то. Тут все получилось с 1 раза.

  2. Ответить Рустам
    14/01/10

    Ошибка при выполнении mingw32-make.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

?

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackbacks:0

Listed below are links to weblogs that reference
Как собрать драйвер MySQL для Qt под Win from EchoBlog::howToCode
TOP