====== 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//