HOWTO: Як скомпілювати динамічні бібліотеки MySQL для Qt 4.8

Параметри системи, на якій все відбувається:

  • Windows 7, x64
  • Qt 4.8.4
  • MinGW 4.4

За замовчуванням, в Qt драйвери для роботи з базою даних MySQL відсутні. Щоб переконатися в цьому можна виконати наступний код:

QStringList driverList;
driverList = QSqlDatabase::drivers();
if (!driverList.contains("QMYSQL", Qt::CaseInsensitive)) {
  qDebug() << "No QMYSQL support! Check all needed dll-files!";
} else {
  qDebug() << "QMYSQL support is avaiable.";
}

Для того, щоб зібрати необхідну для роботи бібліотеку, потрібно мати вихідні коди Qt та вихідні коди MySQL (при встановленні обох поставити галочки “Встановлювати вихідні коди”). Для Qt вихідні коди будуть знаходитися в каталозі ...\Qt4.8.4\src (конкретно, нас цікавить підкаталог src\plugins\sqldriversmysql), а для MySQL те що нам потрібно – ...MySQLMySQL Server 5.5include. Ці шляхи шляхи в мене в системі були c:Program Files (x86)MySQLMySQL Server 5.5include (C:PROGRA~2MySQLMYSQLS~1.5) та d:Qt4.8.4srcpluginssqldriversmysql.

Для автоматизації збірки бібліотек, пропоную використати скрипт (.bat-файл):


set mysql=C:PROGRA~2MySQLMYSQLS~1.5

cd d:Qt4.8.4srcpluginssqldriversmysql

qmake "INCLUDEPATH+=%mysql%include" "LIBS+=%mysql%liblibmysql.lib"

-o Makefile mysql.pro "CONFIG+=release"

c:MinGWbinmingw32-make.exe

pause

В якому c:MinGWbinmingw32-make.exe – шлях до вашого mingw32-make.exe.

В результаті успішного виконання скрипта, в каталозі d:Qt4.8.4srcpluginssqldriversmysqlrelease з’явиться файл qsqlmysql4.dll.

Увага. Файл qsqlmysql4.dll (а також, за необхідності qsqlmysqld4.dll) та libmysql.dll (з каталогу MySQLMySQL Server 5.5lib) потрібно скопіювати в папку з Qt – Qt4.8.4pluginssqldrivers і надалі розповсюджувати з програмою, де використовується доступ до баз даних MySQL.

comments powered by Disqus