Kompilacja Driver QMYSQL

1

Czy ktoś z was pomógłby rozwiązać problem z kompilacją drivera QMYSQL do Qt ?

robiłem według dokumentacji i tego samouczka ale niestety chłopaki chyba coś spieprzyli ?

Bo podczas sprawdzania skryptem nie mogę uzyskać MySQL ... yes. Robiłem różne rzeczy - kopiowałem do katalogu bez spacji, ujmowałem w cudzysłów, przeklejałem biblioteki o które kompilator zgłaszał i ni cholery to nie chce się zbudować.

Robię to na windows 10

Chciałbym aby ktoś pomógł - ale czy ktoś pomoże ? Swoją drogą, czemu nie mogą dać jak ludzie skompilowanej DLL-ki i muszą uciekać się do takich głupot ?

0

Pokaż po kolei co robisz i jak to robisz.

Brak tej DLL-ki faktycznie irytuje, ale ostatnio robiłem to jakoś w okolicach Qt 5.2 i działało od ręki.

0

niestety nadal nic nie działa. Oto procedura działania.

  1. Pobrałem MySQL Community
  2. Zainstalowałem w lokalizacji C:\MySQL-8.0.18
  3. Odpalam konsolę kompilatora MinGW 7.3.0 64 bit - bo w takiej mam wersji
  4. Wpisuję w tej konsoli to
    qmake -- MYSQL_INCDIR="C:\MySQL-8.0.18\Connector-C++-8.0\include" MYSQL_LIBDIR="C:\MySQL-8.0.18\Connector-C++-8.0\lib"
  5. Otrzymuję coś takiego
    screenshot-20201022080329.png

Robię to wg. oficjalnej dokumentacji. Może robię coś źle ?

0

Na pewno masz tam te pliki w katalogu Include?

1

Zobacz czy w C:\MySQL-8.0.18\Connector-C++-8.0\include masz mysql.h, jeśli nie to podajesz złą ścieżkę.
Możliwe także że używasz złego connectora, bazując na tym https://doc.qt.io/qt-5/sql-driver.html#how-to-build-the-qmysql-plugin-on-windows qt używa connectora C ty natomiast dołączasz connector C++

0
Meini napisał(a):

Na pewno masz tam te pliki w katalogu Include?

plx211 napisał(a):

Zobacz czy w C:\MySQL-8.0.18\Connector-C++-8.0\include masz mysql.h, jeśli nie to podajesz złą ścieżkę.

screen z zawartości katalogu.
Plik mysql.h przekleiłem ze starszej wersji mysql-connector-c-6.1.11-winx64 i wkleiłem go do katalogu
C:\Program Files\MySQL\Connector C++ 8.0\include

screenshot-20201022144349.png

Wiem, że connector jest napisany w C++ ale niestety innego nie ma, a jak próbuję zbudować connectora tego który jest napisany w C czyli mysql-connector-c-6.1.11-winx64 to problem jest ten sam

screenshot-20201022144618.png

1

Udało mi się rozwiązać problem. A wiec co zrobiłem. Jeszcze muszę dodać, że dokumentacja jest niejasna ale po dwóch dniach walki udało się.

Procedura postępowania jest dla Qt-5.14.2-x64 - fajnie by było gdyby ktoś potwierdził czy to samo zadziała na najnowszych wersjach

Będą potrzebne dwie paczki.

  1. Ściągamy plik MariaDB Connector/C 3.1.5 Windows & Linux binaries -> stąd
  2. Ściągamy plik mysql-connector-c-6.1.11-winx64.zip -> stąd - trzeba wybrać odpowiednią wersję z listy
  3. Instalujemy to w domyślnych lokalizacjach

I teraz bardzo ważna rzecz.

  1. Kopiujemy dwa pliki - libmysql.dll oraz libmysql.lib z katalogu mysql-connector-c-6.1.11-winx64\lib do katalogu MariaDB\MariaDB Connector C 64-bit\lib
  2. Odpalamy konsolę Qt mingw32
  3. wpisujemy cd.. aby wyjść z katalogu mingw
  4. wpisujemy cd Src\qtbase\src\plugins\sqldrivers aby przejść do katalogu gdzie będzie uruchomiony skrypt sprawdzający i wykonana kompllacja DLL-ek
  5. W konsoli wpisujemy dokładne ścieżki - w moim przypadku było tak
    qmake -- MYSQL_INCDIR="C:\Program Files\MariaDB\MariaDB Connector C 64-bit\include" MYSQL_LIBDIR="C:\Program Files\MariaDB\MariaDB Connector C 64-bit\lib"
    Pojawi się coś takiego jak niżej - Ważne jest aby pojawiło się MySQL ... yes

screenshot-20201022155319.png

  1. gdy skrypt zakończy działanie, wpisujemy mingw32-make
  2. po zakończeniu powyższego instalujemy skompilowane biblioteki DLL wydając polecenie mingw32-make install
  3. żeby zobaczyć czy wszystkie DLL-ki się zainstalowały jak trzeba sprawdzamy katalog C:\Qt\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers - to jest ścieżka gdzie ja instalowałem Qt
  4. Kompilujemy jakąś bazę danych i sprawdzamy czy się łączy

Dziękuję wszystkim za odpowiedzi i zaangażowanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1