====== Wstęp ====== ===== 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 ===== Przy tworzeniu tego samouczka użyłem: * Windows 7 Professional 64 bit * 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 ([[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 ====== 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 (potrzebne do kompilacji przy pomocy gcc) sciezka/do/qt/mingw/bin {{:qt_creator:adding_path.png|}} Uruchomić wiersz poleceń (CMD) z prawami administratora: W CMD przejść do sciezka/do/boost/tools/build/v2/engine/src i wpisać komendę, która przygotuje narzędzie do kompilacji: build.bat gcc {{:qt_creator:build.png|}} Po zakończeniu kompilacji otrzymamy plik bjam.exe w katalogu: sciezka/do/boost/tools/build/v2/engine/src/bin.ntx86 który należy przekopiować do: sciezka/do/boost Następnie uruchomić proces kompilacji z dodatkowymi parametrami: bjam toolset=gcc threading=multi --build-type=complete stage install --layout=tagged >build.log 2>&1 {{:qt_creator:bjam.png|}} Teraz trzeba wykazać się **dużą** dawką cierpliwości. Po zakończonej kompilacji można znaleźć log w pliku: build.log Gotowe biblioteki w katalogu: sciezka/do/boost/stage/lib ====== Linkowanie bibliotek Boost w QT Creator ====== Po udanej kompilacji, aby podlinkować biblioteki, w pliku projektu należy dodać: INCLUDEPATH += "sciezka/do/boost" LIBS += -L"sciezka/do/boost/stage/lib" 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: LIBS += \ -lboost_regex-mt ===== Zawartość przykładowych plików ===== Plik projektu:#------------------------------------------------- # # 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 Plik main.cpp:#include #include 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; } ====== 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ę: include(local.pro) 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: #------------------------------------------------- # # 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 Plik z lokalnymi ścieżkami:#local.pro INCLUDEPATH += "E:\boost_1_45_0" LIBS += -L"E:\boost_1_45_0\stage\lib" --- //[[netczuk.tomasz@gmail.com|Tomasz Netczuk]] 2011/01/01 20:36//