Pierwsza część procesu związanego z instalacją biblioteki SFML 2.0 została omówiona w rozdziale Instalacja biblioteki SFML 2.0. Zapoznaj się z treścią wspomnianego rozdziału zanim rozpoczniesz proces konfiguracji biblioteki SFML 2.0.
|
Wprowadzenie
Proces konfiguracji projektu w
Code::Blocks jest generalnie rzecz biorąc prawie taki sam jak w środowisku Visual C++. Zauważalnym problemem dla środowiska
Code::Blocks jest jednak fakt, iż spora część deweloperów (w tym i ja) samodzielnie pobiera jakąś bliżej nieokreśloną wersję kompilatora, a następnie wykorzystuje go podczas tworzenia własnych aplikacji. Póki wszystko działa to problemu oczywiście nie ma, jednak ta cała dowolność, a czasami nawet konieczność wgrywania nowszego kompilatora powoduje, że pojawiają się nieoczekiwane problemy podczas konfiguracji bibliotek, które zostały skompilowane przez osoby trzecie. W konsekwencji oznacza to, że prawidłowe skonfigurowanie projektu w Code::Blocks nie gwarantuje nam poprawnego działania tworzonej aplikacji, jeżeli biblioteki linkowane do projektu zostały skompilowane inną wersją kompilatora niż ten, który obecnie posiadasz i używasz.
Niezgodność bibliotek SFML z posiadanym kompilatorem
Jeżeli jesteś szczęśliwym posiadaczem 'unikatowej' wersji kompilatora to wiedz, że z dużym prawdopodobieństwem będziesz musiał nadłożyć sobie pracy zanim zaczniesz się cieszyć biblioteką SFML 2.0. Pierwszą możliwą opcją jest po prostu wgranie tej samej wersji kompilatora, która została użyta do skompilowania bibliotek SFML 2.0. Drugą opcją jest zmiana środowiska na inne (np. Visual C++ 2008). Trzecią (i w sumie najlepszą) opcją jest samodzielna kompilacja bibliotek SFML ze źródeł, o ile koniecznie chcesz pozostać przy środowisku i kompilatorze, którego używasz. Wiedz jednak, że samodzielna kompilacja jakichkolwiek bibliotek ze źródeł rzadko kiedy idzie gładko i nawet doświadczeni programiści potrafią stracić do tego cierpliwość.
Kompilacja SFML 2.0 ze źródeł
Jeżeli czujesz potrzebę samodzielnej kompilacji ze źródeł to niestety będziesz musiał zadowolić się informacjami, jakie można znaleźć na stronie twórcy biblioteki SFML. Poradnik opisujący proces kompilacji biblioteki SFML 2.0 w języku angielskim znajduje się na następującej stronie:
http://www.sfml-dev.org/tutorials/2.0/compile-with-cmake.php.
Tworzenie nowego projektu
Rozpocznijmy proces konfiguracji biblioteki SFML. Uruchom środowisko
Code::Blocks, a następnie wybierz z menu pozycję
File/New/Project.... Na ekranie ukaże Ci się okno dialogowe za pomocą którego tworzy się nowe projekty. W lewej części okna znajduje się drzewko wyboru. Wybierz na nim pozycję
Projects. Po prawej stronie okna dialogowego znajduje się lista dostępnych szablonów projektów (większość dotyczy języka C++). Odszukaj, a następnie zaznacz szablon o nazwie
Empty project, po czym zatwierdź wybór klikając przycisk
Go. Na ekranie ukaże Ci się prosty kreator tworzenia projektów. Jeżeli masz świeżo zainstalowany
Code::Blocks to pojawi Ci się ekran powitalny, w którym należy kliknąć po prostu przycisk
Next. W kolejnym etapie zostaniesz poproszony o nadanie nazwy projektu oraz ścieżki, gdzie ma zostać utworzony projekt. Nadaj więc nazwę projektu (np.
Kurs SFML) oraz określ ścieżkę na dysku zapisu projektu. Więcej zmian w ustawieniach kreatora nie należy wprowadzać, także kliknij przycisk
Next, a następnie przycisk
Finish. W wyniku przeprowadzenia powyższych kroków, utworzony został pusty projekt, który widoczny jest w panelu
Managment. Włączenie i wyłączenie panelu
Managment zostało opisane w kolejnym paragrafie.
Tworzenie pliku main.cpp
Przed przystąpieniem do konfiguracji projektu warto dodać do niego plik z rozszerzeniem
*.cpp. Wybierz więc z menu pozycję
File/New/Empty file (skrót:
CTRL+SHIFT+N). Na ekranie pojawi się okno dialogowe z pytaniem, czy chcesz dodać plik do aktywnego projektu. Kliknij przycisk
Tak. W kolejnym oknie dialogowym nadaj plikowi nazwę
main.cpp, a następnie zatwierdź wybór przyciskiem
Zapisz. W kolejnym oknie dialogowym pojawią się dostępne tryby kompilacji. Zaznacz tryby kompilacji
Debug oraz
Release, a następnie zamknij okno zatwierdzając wprowadzone zmiany za pomocą przycisku
OK. Otwórz następnie panel
Managment (w menu
View nosi on nazwę
Manager). Panel ten można pokazywać i ukrywać przy pomocy skrótu klawiszowego
SHIFT+F2. W górnej części panelu widoczne są trzy zakładki, tj.
Projects,
Symbols oraz
Resources. Wybierz zakładkę
Projects, w której znajduje się drzewko projektu. Jeżeli poprawnie przeprowadziłeś proces dodawania pliku do projektu to na drzewku w gałęzi
Sources powinien pokazać się przed chwilą utworzony plik
main.cpp. Otwórz plik
main.cpp poprzez jego dwukrotne kliknięcie, a następnie wklej następujący kod źródłowy:
Kod na chwilę obecną nie ma najmniejszego znaczenia, ale dzięki temu zawsze możesz sprawdzić czy projekt się kompiluje. Skrót
CTRL+F9 kompiluje projekt.
Wejście w opcje projektu
Otwórz teraz panel
Managment, wybierz w nim zakładkę
Projects, kliknij prawym klawiszem na
nazwie projektu, a następnie z rozwijanego menu wybierz pozycję
Properties. Jeżeli projekt jest aktywny (czyli jest pogrubiony na drzewku widocznym w panelu
Managment/Projects), opcje projektu można uruchomić wybierając z menu
Project pozycję
Properties. W wyniku przeprowadzenia powyższych kroków, na ekranie powinno pojawić się okno dialogowe opcji projektu.
Wejście w opcje kompilacji danego projektu
Otworzenie okna zawierającego zbiór ustawień kompilacji dla projektu możliwe jest na dwa sposoby. Pierwszy z nich polega na otworzeniu
okna opcji projektu. W górnej części otwartego okna dialogowego znajduje się kilka zakładek. Wybierz zakładkę
Project settings, a następnie odszukaj na niej duży przycisk zatytułowany
Project's build options.... Kliknięcie wspomnianego przycisku otworzy kolejne okno dialogowe z
opcjami kompilacji jakie mają być używane dla wcześniej wybranego projektu. Okno zawierające
opcje kompilacji dla projektu można również otworzyć bezpośrednio z menu
Project, wybierając pozycję
Build options.... W tym wypadku opcje kompilacji zostaną otworzone dla projektu, który jest aktywny tj. jest pogrubiony na drzewku w panelu
Managment/Projects.
Konfiguracja 'Compiler Directories'
Ustawienia omawiane w niniejszym paragrafie dotyczą okna dialogowego, zawierającego opcje kompilacji projektu. Zanim zaczniesz wprowadzać ustawienia zgodnie z opisem znajdującym się w niniejszym paragrafie, zaznacz konfigurację nadrzędną dla trybu Debug oraz trybu Release w otwartym oknie dialogowym (drzewko wyboru konfiguracji znajduje się w lewej części okna dialogowego).
|
Pierwszą rzeczą, jaką należy skonfigurować to katalogi, w których kompilator ma szukać plików nagłówkowych biblioteki SFML. W tym celu należy wybrać zakładkę
Search directories, a w niej wybrać następnie kolejną zakładkę o nazwie
Compiler. Po wybraniu zakładki
Compiler, odszukaj w dolnej części okna przycisk zatytułowany
Add, a następnie kliknij go (spowoduje to otwarcie nowego okna dialogowego). W nowo otwartym oknie dialogowym wpisz teraz ścieżkę do katalogu zawierającego pliki nagłówkowe biblioteki SFML. Jeżeli proces instalacji przeprowadzałeś zgodnie z pierwszym rozdziałem niniejszego kursu to wymagane pliki znajdują się w katalogu:
C:\Projekty\Biblioteki\SFML 2.0\include. Po wpisaniu wspomnianej ścieżki zamknij okno dialogowe, klikając przycisk
OK. Wprowadzone zmiany należy również zatwierdzić w otwartym oknie dialogowym
opcji kompilacji projektu - to tego celu służy przycisk
OK.
Konfiguracja 'Linker Directories'
Ustawienia omawiane w niniejszym paragrafie dotyczą okna dialogowego, zawierającego opcje kompilacji projektu. Zanim zaczniesz wprowadzać ustawienia zgodnie z opisem znajdującym się w niniejszym paragrafie, zaznacz konfigurację nadrzędną dla trybu Debug oraz trybu Release w otwartym oknie dialogowym (drzewko wyboru konfiguracji znajduje się w lewej części okna dialogowego).
|
Kolejną rzeczą jaką należy skonfigurować to katalogi, w których kompilator ma szukać skompilowanych bibliotek, dostarczonych w paczce instalacyjnej SFML. W tym celu należy wybrać zakładkę
Search directories, a w niej wybrać następnie kolejną zakładkę o nazwie
Linker. Po wybraniu zakładki
Linker, odszukaj w dolnej części okna przycisk zatytułowany
Add, a następnie kliknij go (spowoduje to otwarcie nowego okna dialogowego). W nowo otwartym oknie dialogowym wpisz teraz ścieżkę do katalogu zawierającego skompilowane pliki biblioteki SFML (chodzi o pliki z rozszerzeniem
*.a). Jeżeli proces instalacji przeprowadzałeś zgodnie z pierwszym rozdziałem niniejszego kursu to wymagane pliki znajdują się w katalogu:
C:\Projekty\Biblioteki\SFML 2.0\lib. Po wpisaniu wspomnianej ścieżki zamknij okno dialogowe, klikając przycisk
OK. Wprowadzone zmiany należy również zatwierdzić w otwartym oknie dialogowym
opcji kompilacji projektu - to tego celu służy przycisk
OK.
Statyczne linkowanie standardowych bibliotek C++
Ustawienia omawiane w niniejszym paragrafie dotyczą okna dialogowego, zawierającego opcje kompilacji projektu. Zanim zaczniesz wprowadzać ustawienia zgodnie z opisem znajdującym się w niniejszym paragrafie, zaznacz konfigurację nadrzędną dla trybu Debug oraz trybu Release w otwartym oknie dialogowym (drzewko wyboru konfiguracji znajduje się w lewej części okna dialogowego).
|
Dodatkową opcją, jaką warto skonfigurować jest statyczne linkowanie standardowych bibliotek C++. Dzięki temu nie będziesz musiał przegrywać kolejnych plików
*.dll (dostarczanych z kompilatorem MinGW), do katalogu ze skompilowaną aplikacją
*.exe. W tym celu należy wybrać zakładkę
Linker settings, a następnie w polu tekstowym zatytułowanym
Other linker options (znajdującym się w prawej części okna), wpisać następujące linijki:
-static
-static-libgcc
Dla starszego kompilatora, dostarczanego z wersją
Code:Blocks 10 należy jeszcze dopisać linijkę:
-static-libstdc++
Wprowadzone zmiany należy zatwierdzić za pomocą przycisku
OK.
Konfiguracja 'Link Libraries' - tryb Debug
Uwaga! Ustawienia omawiane w niniejszym paragrafie dotyczą okna dialogowego, zawierającego opcje kompilacji projektu. Zanim zaczniesz wprowadzać ustawienia zgodnie z opisem znajdującym się w niniejszym paragrafie, zaznacz konfigurację Debug w otwartym oknie dialogowym.
|
Ostatnią rzeczą jaką należy skonfigurować dla biblioteki
SFML 2.0 w trybie
Debug to określenie listy bibliotek, jakie mają zostać dolinkowane do tworzonej przez nas aplikacji. W tym celu należy wybrać zakładkę
Linker Settings. Po wybraniu zakładki
Linker settings, odszukaj w dolnej części okna przycisk zatytułowany
Add (kliknięcie go spowoduje otwarcie nowego okna dialogowego). Wspomniane nowe okno dialogowe służy do dodawania bibliotek wygenerowanych przez kompilator (są to pliki z rozszerzeniem
*.a). Omawiane okno dialogowe umożliwia dodanie tylko i wyłącznie jednej biblioteki naraz, a więc koniecznym będzie kilkukrotne użycie wcześniej wspomnianego przycisku
Add. Użyj teraz przycisku
Add, aby wprowadzić następujące biblioteki:
Zwróć szczególną uwagę, iż wszystkie podane biblioteki posiadają w nazwie sufiks '
-d', który oznacza, że dana biblioteka jest przeznaczona dla trybu
Debug. Wprowadzone zmiany zatwierdza się w otwartym oknie dialogowym
opcji kompilacji projektu za pomocą przycisku
OK.
Konfiguracja 'Link Libraries' - tryb Release
Uwaga! Ustawienia omawiane w niniejszym paragrafie dotyczą okna dialogowego, zawierającego opcje kompilacji projektu. Zanim zaczniesz wprowadzać ustawienia zgodnie z opisem znajdującym się w niniejszym paragrafie, zaznacz konfigurację Release w otwartym oknie dialogowym.
|
Ostatnią rzeczą jaką należy skonfigurować dla biblioteki
SFML 2.0 w trybie
Release to określenie listy bibliotek, jakie mają zostać dolinkowane do tworzonej przez nas aplikacji. W tym celu należy wybrać zakładkę
Linker Settings. Po wybraniu zakładki
Linker settings, odszukaj w dolnej części okna przycisk zatytułowany
Add (kliknięcie go spowoduje otwarcie nowego okna dialogowego). Wspomniane nowe okno dialogowe służy do dodawania bibliotek wygenerowanych przez kompilator (są to pliki z rozszerzeniem
*.a). Omawiane okno dialogowe umożliwia dodanie tylko i wyłącznie jednej biblioteki naraz, a więc koniecznym będzie kilkurkotne użycie wcześniej wspomnianego przycisku
Add. Użyj teraz przycisku
Add, aby wprowadzić następujące biblioteki:
Zwróć szczególną uwagę, iż w żadnej z podanych bibliotek nie widnieje żaden sufiks, co oznacza, że biblioteki są przeznaczone dla trybu
Release. Wprowadzone zmiany zatwierdza się w otwartym oknie dialogowym
opcji kompilacji projektu za pomocą przycisku
OK.
Wyłączenie okna konsoli
Dodatkową rzeczą, którą warto wiedzieć jak zrobić to wyłączenie wyświetlającego się okna konsoli. W tym celu należy wejść w
opcje projektu, a następnie wybrać zakładkę
Build targets. Po wybraniu zakładki
Build targets, w prawej części okna należy odszukać opcję zatytułowaną
Type, a następnie z listy rozwijanej wybrać pozycję
GUI application. Wspomnianą opcję możesz ustawić niezależnie dla trybu
Debug oraz dla trybu
Release (wybór trybu kompilacji znajduje się po lewej stronie okna dialogowego).
Kopiowanie plików *.dll do katalogu roboczego aplikacji
Po pomyślnym skonfigurowaniu kompilatora oraz linkera, kluczowym jest
przekopiowanie plików, znajdujących się w katalogu
C:\Projekty\Biblioteki\SFML 2.0\bin\ do katalogu z naszą aplikacją. Pliki
*.dll, z których korzysta biblioteka SFML
muszą się znajdować w tym samym katalogu, co nasza skompilowana aplikacja
*.exe.
Podsumowanie
Code::Blocks 10
Niniejszy rozdział opisywał krok po kroku proces konfiguracji biblioteki
SFML 2.0 dla kompilatora dostarczanego wraz ze środowiskiem
Code::Blocks 10 dla systemu Windows. Opisany proces konfiguracji został tym samym przetestowany na następującej wersji kompilatora:
mingw32-g++.exe (TDM-2 mingw32) 4.4.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Code::Blocks 12
Proces instalacji został przetestowany również dla kompilatora dostarczonego ze środowiskiem
Code::Blocks 12 dla systemu Windows. Do przetestowania procesu instalacji użyto następującej wersji kompilatora:
g++ (tdm-1) 4.7.1
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Pakiet instalacyjny biblioteki SFML dla tej wersji kompilatora nosił nazwę:
GCC 4.7 TDM (SJLJ) - 32 bits.
Testowanie przeprowadzonej instalacji
Po zakończeniu procesu konfiguracji przejdź do rozdziału Test działania biblioteki SFML 2.0, który umożliwi Ci przetestowanie poprawności działania skonfigurowanej biblioteki SFML 2.0.
|