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.
Przy tworzeniu tego samouczka użyłem:
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:
Ścieżka do instalacji QT Creator:
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
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
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
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
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
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 <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; }
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.
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"
— Tomasz Netczuk 2011/01/01 20:36