niedziela, 5 lipca 2009

Qt i MySQL

Kolejnym problemem z jakim się spotkałem wykorzystująć biblioteki Qt był brak integracji z MySQL. Podczas kompilacji wyrzucało mi błąd:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC

Jak zawsze przeszukałem google od początku do końca i znalazłem rozwiązanie:

Krok 1. Instalujemy MySQL najlepiej w folderze c:\MySQL.

Krok 2. Uruchamiamy konsolę MS Visual Studio 2008, wpisujemy:


cd %QTDIR%\src\plugins\sqldrivers\mysql


 qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\lib\opt\libmysql.lib" mysql.pro


nmake

i cieszymy się pełną obsługą MySQL, ale tylko w trybie Debug w MSVC2008.

Uwaga! Jeżeli chcemy mieć obsługę w trybie Release należy po qmake dodać parametr:

-o Makefile

Pozdrawiam.

sobota, 4 lipca 2009

Integracja Qt z MS Visual Studio 2008

Jak zapewne większość wie Qt jest to zestaw bibliotek programistycznych wspomagających tworzenie aplikacji w C++, Java ... , która może być wykorzystywana na różnych systemach operacyjnych (tzw. idea 'cross-platform'). O ile kompilacja w środowisku Linux jest dosyć prosta, należy z repozytoriów zainstalować Qt i za pomocą dwóch komend kompilować napisany program, tak chcąc zintegrować środowisko MSVS2008 oraz bibliotekę Qt trzeba zapewnić odpowiednio skonfigurowane pliki nagłówkowe.

Instrukcja ta zamieszczone jest dla osób, które dopiero zaczynają przygodę z Qt i podobnie jak ja przeszukują anglojęzyczne portale i blogi w celu rozwikłania wielu problemów.

Krok 1. Ściągamy ze strony http://www.qtsoftware.com/downloads/sdk-windows-cpp domyślną dla Windows instalację (zaleca się wersję zawierającą MinGW). Dodatkowo w ściąganej paczce znajduję się wiele programów demo, które w znacznym stopniu ułatwiają naukę nowych bibliotek. Należy również zaopatrzyć się w program MS Visual Studio 2008 :).

Krok 2. Następnie instalujemy środowisko Qt (może być w domyślnej lokalizacji, tj. C:\Qt\2009.03) oraz tworzymy dodatkowy katalog gdzie znajdować się będzie nowa przekompilowana wersja Qt np. C:\Qt\2009.03.MSVC2008. Kopiujemy całą zawartość z orygunalnego katalogu do stworzonego przez nas.

Krok 3. Kolejnym etapem jest ustawienie ścieżki zmiennych środowiskowych, które umożliwiają uruchomianie domyślnych komend Qt i MinGW w dowolnym katalogu wykorzystując konsolę cmd jak również MSVS2008. Aby wszystko działało tak jak powinno klikamy prawym na Mój Komputer->Właściwości->Zaawansowane->Zmienne środowiskowe i w dolnym oknie poszukujemy zmiennej Path. Dodajemy po średniku ; kolejene ścieżki, czyli C:\Qt\2009.03.MSVC2008\qt\bin;C:\Qt\2009.03.MSVC2008\mingw\bin;c:\Qt\2009.03.MSVC2008\qt. Uwaga zmienne środowiskowe zaczną działać dopiero po ponownym uruchomieniu systemu tak, więc wykonujemy tą czynność.

Krok 4. Uruchamiamy konsolę MS Visual Studio 2008, znajduje się w Menu Start\Programy\Microsoft Visual Studio 2008\Visual Studio Tools i przechodzimy do stworzonego katalogu, czyli cd c:\Qt\2009.03.MSVC2008\qt i odpalamy komendy

configure -platform win32-msvc2008

i czekamy ....

nmake

i długo czekamy ....

Jeżeli podczas kompilacji konsola wyrzuci nam błąd:

... FrameLoaderClientQt.obj : error LNK2019: unresolved external symbol “protected:
void __thiscall QWebPage::downloadRequested(class QNetworkRequest const &)” (?do
wnloadRequested@QWebPage@@IAEXABVQNetworkRequest@@@Z) referenced in function “pu
blic: virtual void __thiscall WebCore::FrameLoaderClientQt::startDownload(struct
WebCore::ResourceRequest const &)” (?startDownload@FrameLoaderClientQt@WebCore@
@UAEXABUResourceRequest@2@@Z)
..\..\..\..\lib\QtWebKitd4.dll : fatal error LNK1120: 8 unresolved externals
NMAKE : fatal error U1077: ‘”C:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\BIN\link.EXE”‘ : return code ‘0×460′
Stop.
NMAKE : fatal error U1077: ‘”C:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\BIN\nmake.exe”‘ : return code ‘0×2′
Stop.
NMAKE : fatal error U1077: ‘cd’ : return code ‘0×2′

należy usunąć ..\src\3rdparty\webkit\WebCore\tmp\moc\{debug,release}_shared/mocinclude.tmp.

Krok 5. Uruchamiamy MSVS2008 i wchodzimy w Tools->Options->Projects and Solutions->VC++ Directories i dodajemy kolejno ścieżki do katalogów ..\bin, ..\include, ..\lib, ..\src, podobnie jak poniżej.


Krok 6. Ściągamy nakładkę VSAddin ze strony http://get.qtsoftware.com/vsaddin/, instalujemy, resetujemy komputer i przy tworzeniu nowego projektu wyskoczy nam dodatkowa opcja dla QT. Jedna aby wszystko działało należy w pasku narzędzi wejść do QT->Qt Options i dodać ścieżkę do naszego folderu głównego Qt.


W taki sposób mamy skonfigurowane MS Visual Studio 2008 do współpracy z Qt. Mam nadzieję, że ktoś skorzysta z tej małej instrukcji. Jeśli ktoś chce wiedzieć więcej lub dokładniej przeanalizować problem, to zapraszam na http://blog.shadowgears.com/2008/10/making-qt4-dance-with-msvc-2008.html, http://labs.trolltech.com/blogs/2009/06/25/qt-452-has-been-released/, http://blog.shadowgears.com/2009/05/making-qt-and-msvc-2k8-dance-part-2.html.