Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ide_qt_creator [2010/12/30 09:43] tnetczuk |
ide_qt_creator [2011/01/01 20:39] (aktualna) tnetczuk Błędy językowe i interpunkcja |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Wstęp ====== | ====== Wstęp ====== | ||
===== Opis QT Creator ===== | ===== Opis QT Creator ===== | ||
+ | [[http://qt.nokia.com/products/developer-tools/ | QT Creator]] to darmowe środowisko programistyczne stworzone do wygodnej i szybkiej produkcji programów używających bibliotek QT. Jednakże samo środowisko zostało tak dobrze przygotowane, iż nadaje się nie tylko do tworzenia oprogramowania wykorzystującego biblioteki QT, ale również inne, dużych projektów. | ||
===== Wersje użytych narzędzi ===== | ===== Wersje użytych narzędzi ===== | ||
Przy tworzeniu tego samouczka użyłem: | Przy tworzeniu tego samouczka użyłem: | ||
Linia 10: | Linia 11: | ||
Po rozpakowaniu bibliotek Boost, należy zainstalować QT Creatora z pakietem MinGW (potrzebne w wypadku braku takowego w systemie). | Po rozpakowaniu bibliotek Boost, należy zainstalować QT Creatora z pakietem MinGW (potrzebne w wypadku braku takowego w systemie). | ||
Struktura katalogów w przypadku mojego systemu: | Struktura katalogów w przypadku mojego systemu: | ||
+ | |||
Ścieżka do bibliotek Boost: | Ścieżka do bibliotek Boost: | ||
+ | |||
{{:qt_creator:boost_path.png|}} | {{:qt_creator:boost_path.png|}} | ||
Linia 19: | Linia 22: | ||
====== Kompilacja bibliotek Boost pod Windowsem ====== | ====== Kompilacja bibliotek Boost pod Windowsem ====== | ||
Aby skompilować biblioteki Boost, które następnie będziemy mogli linkować do QT Creator należy wykonać kolejno kroki: | Aby skompilować biblioteki Boost, które następnie będziemy mogli linkować do QT Creator należy wykonać kolejno kroki: | ||
- | - Dodać do ścieżki (zmienna środowiskowa PATH) katalog z binarkami mingw <code>sciezka/do/qt/mingw/bin</code> | + | Dodać do ścieżki (zmienna środowiskowa PATH) katalog z binarkami MinGW (potrzebne do kompilacji przy pomocy gcc) <code>sciezka/do/qt/mingw/bin</code> |
- | Dla mojej konfiguracji wygląda to tak: | + | {{:qt_creator:adding_path.png|}} |
- | {{:qt_creator:adding_path.png|}} | + | Uruchomić wiersz poleceń (CMD) z prawami administratora: |
- | - Uruchomić ścieżkę poleceń (CMD) z prawami administratora | + | W CMD przejść do <code>sciezka/do/boost/tools/build/v2/engine/src</code> i wpisać komendę, która przygotuje narzędzie do kompilacji: <code>build.bat gcc</code> |
- | - W CMD przejść do katalogu z rozpakowanymi bibliotekami Boost i wpisać komendę, która przygotuje narzędzie do kompilacji: <code>bootstrap.bat</code> | + | {{:qt_creator:build.png|}} |
- | - Następnie uruchomić proces kompilacji z dodatkowymi parametrami: <code>bjam toolset=gcc threading=multi --build-type=complete stage install --layout=tagged >build.log 2>&1</code> | + | |
- | - Teraz trzeba wykazać się dużą dawką cierpliwości | + | Po zakończeniu kompilacji otrzymamy plik bjam.exe w katalogu: <code>sciezka/do/boost/tools/build/v2/engine/src/bin.ntx86</code> który należy przekopiować do: <code>sciezka/do/boost</code> |
- | - Po zakończonej kompilacji można znaleźć log w pliku <code>build.log</code> | + | |
+ | Następnie uruchomić proces kompilacji z dodatkowymi parametrami: <code>bjam toolset=gcc threading=multi --build-type=complete stage install --layout=tagged >build.log 2>&1</code> | ||
+ | {{:qt_creator:bjam.png|}} | ||
+ | |||
+ | Teraz trzeba wykazać się **dużą** dawką cierpliwości. | ||
+ | |||
+ | Po zakończonej kompilacji można znaleźć log w pliku: <code>build.log</code> | ||
+ | Gotowe biblioteki w katalogu: <code>sciezka/do/boost/stage/lib</code> | ||
====== Linkowanie bibliotek Boost w QT Creator ====== | ====== Linkowanie bibliotek Boost w QT Creator ====== | ||
- | Po udanej kompilacji, aby podlinkować biblioteki, w pliku projektu należy dodać: <code>win32:INCLUDEPATH += "E:\\Dev\\boost_1_45_0" | + | Po udanej kompilacji, aby podlinkować biblioteki, w pliku projektu należy dodać: <code>INCLUDEPATH += "sciezka/do/boost" |
- | win32:LIBS += -L"E:\\Dev\\boost_1_45_0\\stage\\lib"</code> | + | LIBS += -L"sciezka/do/boost/stage/lib"</code> |
+ | Pierwszy wiersz określa nam położenie plików nagłówkowych, a drugi katalog z bibliotekami. | ||
+ | |||
+ | Teraz jeżeli chcemy użyć w projekcie na przykład biblioteki regex, dodajemy do pliku projektu: <code>LIBS += \ | ||
+ | -lboost_regex-mt</code> | ||
+ | |||
+ | ===== Zawartość przykładowych plików ===== | ||
+ | Plik projektu:<code>#------------------------------------------------- | ||
+ | # | ||
+ | # Project created by QtCreator 2010-12-30T11:21:05 | ||
+ | # | ||
+ | #------------------------------------------------- | ||
+ | |||
+ | QT += core | ||
+ | |||
+ | QT -= gui | ||
+ | |||
+ | TARGET = BoostTest | ||
+ | CONFIG += console | ||
+ | CONFIG -= app_bundle | ||
+ | |||
+ | TEMPLATE = app | ||
+ | |||
+ | SOURCES += main.cpp | ||
+ | |||
+ | INCLUDEPATH += "E:\boost_1_45_0" | ||
+ | LIBS += -L"E:\boost_1_45_0\stage\lib" | ||
+ | |||
+ | LIBS += \ | ||
+ | -lboost_regex-mt | ||
+ | </code> | ||
+ | Plik main.cpp:<code cpp>#include <iostream> | ||
+ | #include <boost/xpressive/xpressive.hpp> | ||
+ | |||
+ | using namespace boost::xpressive; | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | std::string hello( "hello world!" ); | ||
+ | |||
+ | sregex rex = sregex::compile( "(\\w+) (\\w+)!" ); | ||
+ | smatch what; | ||
+ | |||
+ | if( regex_match( hello, what, rex ) ) | ||
+ | { | ||
+ | std::cout << what[0] << '\n'; // whole match | ||
+ | std::cout << what[1] << '\n'; // first capture | ||
+ | std::cout << what[2] << '\n'; // second capture | ||
+ | } | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
====== Struktura pliku projektu QT Creator (*.pro) ====== | ====== Struktura pliku projektu QT Creator (*.pro) ====== | ||
+ | W przypadku projektu wieloosobowego, może (i raczej tak będzie) przydarzyć się konflikt ścieżek do bibliotek. W takim przypadku należy dodać nowy plik, który będzie opisywał tylko **lokalne** ścieżki i nie będzie on dzielony z współpracownikami. Dodatkowo należy zadbać o pobieranie go do projektu. | ||
+ | ===== Przykład ===== | ||
+ | Dodajemy plik local.pro do projektu. W tym pliku umieszczamy ścieżki do bibliotek Boost w naszym systemie. | ||
+ | W oryginalnym (wspólnym pliku projektowym) dodajemy linię: <code>include(local.pro)</code> | ||
+ | W ten sposób każda osoba pracująca nad wspólnym projektem może mieć biblioteki rozmieszczone w innym miejscu w swoim systemie. Przykładowy plik projektu: <code>#------------------------------------------------- | ||
+ | # | ||
+ | # Project created by QtCreator 2010-12-30T11:21:05 | ||
+ | # | ||
+ | #------------------------------------------------- | ||
+ | |||
+ | QT += core | ||
+ | |||
+ | QT -= gui | ||
+ | |||
+ | TARGET = BoostTest | ||
+ | CONFIG += console | ||
+ | CONFIG -= app_bundle | ||
+ | |||
+ | TEMPLATE = app | ||
+ | |||
+ | SOURCES += main.cpp | ||
+ | |||
+ | include(local.pro) | ||
+ | |||
+ | LIBS += \ | ||
+ | -lboost_regex-mt | ||
+ | |||
+ | OTHER_FILES += \ | ||
+ | local.pro | ||
+ | </code> | ||
+ | Plik z lokalnymi ścieżkami:<code>#local.pro | ||
+ | |||
+ | INCLUDEPATH += "E:\boost_1_45_0" | ||
+ | LIBS += -L"E:\boost_1_45_0\stage\lib"</code> | ||
- | --- //[[netczuk.tomasz@gmail.com|Tomasz Netczuk]] 2010/12/30 00:23// | + | --- //[[netczuk.tomasz@gmail.com|Tomasz Netczuk]] 2011/01/01 20:36// |