Chciałbym dziś przedstawić problem, z którym ostatnio
spotkałem się pisząc swoje pierwsze programy z wykorzystaniem
bibliotek Qt. Na szczęście udało mi się znaleźć rozwiązanie, a że
polski Internet zajmuje stanowisko dość milczące w tej sprawie, to
postanowiłem całość opisać na stronie.
Tak jak wspomniałem, zacząłem ostatnio pisać programy z wykorzystaniem
bibliotek Qt. W dwóch z nich chciałem użyć komponentów
QNetworkProxy oraz
QWebView. Jednak podczas kompilacji
otrzymałem komunikaty o następującej treści:
fatal error: QNetworkProxy: No such file or directory
compilation terminated.
oraz
fatal error: QWebView: No such file or directory
compilation terminated.
Muszę przyznać, że zaskoczyła mnie ta sytuacja, ponieważ pliki
nagłówkowe tych bibliotek znajdowały się na swoim miejscu.
Jak się okazało, problem leżał w
pliku projektu stworzonym za pomocą
polecenia
qmake. Brakowało w nim wskazania na te biblioteki,
dlatego w takiej sytuacji należy ręcznie dopisać odpowiednią linijkę
kodu.
Generalnie zasada jest taka, że jak otrzymujemy komunikat o takiej
treści, to trzeba się udać do katalogu z plikami nagłówkowymi - w moim
przypadku jest to:
/usr/local/Trolltech/Qt-4.7.0/include
Następnie, trzeba znaleźć w którym z katalogów znajdują się
wykorzystywane przez nas biblioteki (ich
kategoria). Czyli
np. dla komponentu
QNetworkProxy jest to
katalog
QtNetwork. Zatem do pliku projektu musimy dopisać
następującą linijkę:
QT += network
Dzięki temu kompilator będzie wiedział gdzie szukać plików
nagłówkowych.
Analogicznie, dla komponentu QWebView, który znajduje się w
katalogu QtWebKit, dopisujemy linijkę:
QT += webkit
Po prostu posługujemy się nazwą katalogu z opuszczeniem członu Qt oraz
z tylko małymi literami.
To jeszcze tylko przykład na to co do pisać, gdy chcemy użyć obydwu
bibliotek w jednym programie:
QT += network webkit
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!