Компіляція Qt 4.8 під Лінукс

Вирішив трошки “get hands dirty”. Постійно використовую Qt та QtCreator як середовище для розробки як під Windows так і під Linux.

Цього разу вирішив зібрати бібліотеку Qt з вихідних кодів.

Читати далі

Advertisements

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 вихідні коди будуть знаходитися в каталозі ...\Qt\4.8.4\src\ (конкретно, нас цікавить підкаталог \src\plugins\sqldrivers\mysql\), а для MySQL те що нам потрібно — ...\MySQL\MySQL Server 5.5\include\. Ці шляхи шляхи в мене в системі були c:\Program Files (x86)\MySQL\MySQL Server 5.5\include\ (C:\PROGRA~2\MySQL\MYSQLS~1.5) та d:\Qt\4.8.4\src\plugins\sqldrivers\mysql\.

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

set mysql=C:\PROGRA~2\MySQL\MYSQLS~1.5
cd d:\Qt\4.8.4\src\plugins\sqldrivers\mysql\
qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\libmysql.lib" 
-o Makefile mysql.pro "CONFIG+=release"
c:\MinGW\bin\mingw32-make.exe
pause

В якому c:\MinGW\bin\mingw32-make.exe — шлях до вашого mingw32-make.exe.

В результаті успішного виконання скрипта, в каталозі d:\Qt\4.8.4\src\plugins\sqldrivers\mysql\release\ з’явиться файл qsqlmysql4.dll.

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