Różnice między wybraną wersją a wersją aktualną.
| Next revision | Previous revision | ||
|
ide_qt_creator [2010/12/30 00:24] tnetczuk utworzono wersję niepełną |
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: | ||
| * Windows 7 Professional 64 bit | * Windows 7 Professional 64 bit | ||
| - | * QT Creator 2010.05 (qt-sdk-win-opensource-2010.05.exe) | + | * QT Creator 2010.05 ([[http://get.qt.nokia.com/qtsdk/qt-sdk-win-opensource-2010.05.exe | qt-sdk-win-opensource-2010.05.exe]]) |
| - | * Biblioteki Boost 1.45.0 (boost_1_45_0.7z Windows line ending) | + | * Biblioteki Boost 1.45.0 ([[http://sourceforge.net/projects/boost/files/boost/1.45.0/boost_1_45_0.7z/download | boost_1_45_0.7z]]) |
| + | |||
| + | ===== Przygotowanie narzędzi ===== | ||
| + | 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: | ||
| + | |||
| + | Ścieżka do bibliotek Boost: | ||
| + | |||
| + | {{:qt_creator:boost_path.png|}} | ||
| + | |||
| + | Ścieżka do instalacji QT Creator: | ||
| + | |||
| + | {{:qt_creator:qt_crator_path.png|}} | ||
| ====== 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> |
| - | - Uruchomić ścieżkę poleceń (CMD) z prawami administratora | + | {{:qt_creator:adding_path.png|}} |
| - | - W CMD przejść do katalogu z rozpakowanymi bibliotekami Boost i wpisać komendę, która przygotuje narzędzie do kompilacji: <code>bootstrap.bat</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> | + | Uruchomić wiersz poleceń (CMD) z prawami administratora: |
| - | - Teraz trzeba wykazać się dużą dawką cierpliwości | + | 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> |
| - | - Po zakończonej kompilacji można znaleźć log w pliku <code>build.log</code> | + | {{:qt_creator:build.png|}} |
| + | |||
| + | 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> | ||
| + | |||
| + | 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// |