Instalacja i konfiguracja biblioteki Qt z Dev-cpp
- Instalacja Dev-ccp i biblioteki Qt.
Pobrać aktualne wersje Dev-Cpp (z Mingw) i bibliotekę Qt (Windows Open Source Edition). Następnie zainstalować Dev-Cpp, następnie bibliotekę Qt według instrukcji po uruchomieniu setup dla każdej z aplikacji. W czasie instalacji Qt pojawi się pytanie o Previously instaled MinGW . Należy wtedy wskazać miejsce gdzie został zainstalowany Dev-cpp. Jeśli nie zmienialiśmy ustawień będzie to folder C:\Dev-Cpp
Źródła do pobrania:
<a href="http://www.bloodshead.net/dev/devcpp.html">http://www.bloodshead.net/dev/devcpp.html</a>
<a href="http://trolltech.com/downloads/opensource">http://trolltech.com/downloads/opensource</a>
- Konfiguracja Dev-Cpp z Qt
Uruchamiamy Dev-Cpp. W menu Narzędzia/Opcje kompilatora wybieramy zakładkę Katalogi. Teraz interesować nas będą już tylko zakładki tej karty.
Zakładając, że biblioteka Qt została zainstalowana w domyślnym miejscu:
• W zakładce Binarna dodajemy ścieżkę C:\Qt\4.4.0\bin (zależnie od wersji biblioteki numer się zmieni)
• W zakładce Biblioteki dodajemy ścieżkę C:\Qt\4.4.0\lib
• W zakładce Pliki Nagłówkowe C++ jest trochę więcej do dodania.
Dodajemy po kolei foldery z katalogu include.
Kopiuj
C:\Qt\4.4.0\include\Qt
…
C:\Qt\4.4.0\include\QtUiTools
Dodajemy również C:\Qt\4.4.0\include
Potwirdzamy OK I zamykamy Dev-Cpp
- Dodanie ścieżki do Qt
Wchodzimy do Panelu sterowania System Właściwości systemu Zaawansowane Zmienne środowiskowe. W zależności czy chcemy dodać zmienne środowiskowe dla aktualnego użytkownika, czy dla całego systemu, czyli dla wszystkich użytkowników musimy do zmiennej Path dodać wpis C:\Qt\4.4.0\bin; podobnie do istniejących już tam wpisów. W tym celu należy po prostu zmienną Path edytować dodać wpis i potwierdzić. Jeśli takiej zmiennej brak, należy ją dodać poprzez Nowa.
Na tym etapie można spróbować wstukać pierwszy podstawowy tutorial Qt, który jest w zainstalowanym z biblioteką Qt Assistant. Powinno chodzić.
4. Jak sobie radzić z kompilatorem MOC – (Meta Object Compiler)
W 7 tutorialu Qt napotkałem błędy typu:
undefined reference to ‘vtable for …’
Oznacza to, że nie zadziałał MOC, który jest potrzebny np. kiedy w kodzie pojawi się hasło Q_OBJECT, przy sygnałach i slotach.
Utworzyć trzeba sobie plik qt.mak:
Kopiuj
QT_MOC_UI_RCC=qt-moc-ui-rcc.exe
all-before: qt_moc_ui_rcc $(patsubst %.cpp,%.o,$(wildcard moc_*.cpp))
qt_moc_ui_rcc:
$(QT_MOC_UI_RCC)
moc_%.o: moc_%.cpp
$(CPP) -c $< -o $@ $(CXXFLAGS)
Zawierający dodatkowe polecenia dla kompilatora MOC i polecenia do tłumaczenia plików wygenerowanych w Qt Designer. Jeśli w projekcie korzystamy z którychś z wymienionych rzeczy to trzeba ten pliczek dołączyć.
W Dev-Cpp otwieramy menu Projekt Opcje projektu Makefile , wybieramy utworzony przez nas qt.mak i dołączamy do Makefile.
Dalej opierając się na przykładzie z tutorialu 7 należy dołączyć do projektu plik moc_lcdrange.cpp
przedrostek moc + nazwa klasy w której jest Q_OBJECT + .cpp z zawartością:
Kopiuj
#include "lcdrange.h"
const QMetaObject LCDRange::staticMetaObject = {};
const QMetaObject *LCDRange::metaObject() const {}
void *LCDRange::qt_metacast(const char *_clname) {}
int LCDRange::qt_metacall(QMetaObject::Call _c, int _id, void **_a){}
Po kompilacji zawartość pliku ulegnie zmianie (działanie MOC) i powinno chodzić. Więcej o MOC:
http://www.potu.com/man/doc.trolltech.com/4.0/moc.html
Od autora tekstu:
Sam dopiero zaczynam przygodę z biblioteką Qt, więc są może lepsze rozwiązania, o których nie wiem. Udało mi się przebrnąć przez pewne problemy i działa. Chciałem więc trochę ułatwić innym życie na tyli ile potrafię.
Owocnego programowania!