Wprowadzenie
Post ten przeznaczony jest dla osób, które miały już wcześniej kontakt z systemem operacyjnym rodziny Linux. Skupię się głównie na omówieniu przygotowania biblioteki Allegro 5 do pracy. Aby opisać tę instalacje, przygotowałem dla siebie świeżo zainstalowany system. Wybrałem
Debian'a, którego zainstalowałem w
VirtualBox'ie, nazwa płyty instalacyjnej to
debian-8.7.1-i386-CD-1.iso. Jako środowisko graficzne wybrałem XFCE, oraz włączyłem opcje instalowania zamkniętych źródłowo pakietów.
Krok 1 - Logowanie z uprawnieniami głównego administratora
Zaloguj się jako użytkownik z uprawnieniami
root'a, wydając polecenie
su hasło.
Krok 2 - Aktualizacja bazy pakietów
Należy zaktualizować bazę pakietów i zaktualizować system, po świeżej instalacji nie musimy tego przeprowadzać. Wydaj polecenia:
# apt-get update
# apt-get upgrade
Krok 3 - Instalacja podstawowych pakietów
W tym kroku zainstaluj następujące pakiety, aby następny kroki przebiegły bezbłędnie. Wydaj polecenie:
# apt-get install mc make build-essential gitKrok 4 - Instalacja zależności biblioteki Allegro 5
Teraz należy zainstalować zależności biblioteki Allegro 5, wydaj polecenia:
# apt-get install pkg-config cmake cmake-curses-gui xorg-dev libgl1-mesa-dev libglu-dev libopusfile-dev libpng-dev
# apt-get install libcurl4-openssl-dev libfreetype6-dev libjpeg-dev libvorbis-dev libopenal-dev libphysfs-dev libgtk2.0-dev libasound-dev
# apt-get install libpulse-dev libflac-dev libdumb1-dev zlib1g-dev
Krok 5 - Pobranie źródeł biblioteki
Teraz musimy pobrać repozytorium GitHub'a biblioteki Allegro 5. W tym celu przechodzimy do katalogu użytkownika, w moim przypadku jest to komenda
cd /home/michal037. Następnie wydajemy komendę
git clone https://github.com/liballeg/allegro5.git.
Krok 6 - Przygotowanie do budowania biblioteki
Przechodzimy do nowo pobranego katalogu wydając polecenie
cd allegro5. Następnie tworzymy katalog w którym zbudujemy bibliotekę. Wydajemy w tym celu polecenia:
mkdir build
cd build
Krok 7 - Ustawienia do procesu budowania biblioteki
Będąc w katalogu
build, wydajemy polecenie:
# ccmake -DCMAKE_INSTALL_PREFIX=/usr .. Wpisz z dwoma kropkami na końcu.
Powyższe polecenie powoduje przygotowanie biblioteki Allegro 5 do budowania, musimy wydać takie polecenie ponieważ projekt opiera się o program
cmake.
Po wydaniu powyższego polecenia, na ekranie pokaże się kreator budowania biblioteki. Wciskamy klawisz
C aby skonfigurować. W moim przypadku wyskakuje następujący komunikat:
S3TC locking disabled. You will not be able to load/save pre-compressed textures with OpenGL.
WARNING: allegro_video wanted but no supported backend found
Prawdopodobnie wynika on z braku jakieś zależności dla OpenGL. Nie powoduje on później problemu, możemy pominąć ten komunikat wciskając klawisz
E. Jeżeli znajdziesz rozwiązanie tego problemu, proszę Cię o opisanie go.
Następnie ukaże się nam lista, poruszamy się strzałkami na klawiaturze, edytujemy klawiszem
ENTER. Przechodzimy do opcji
CMAKE_BUILD_TYPE, następnie zmieniamy argument tego parametru z
RelWithDebInfo na
Release.
Teraz bardzo ważne aby przejść na parametr
WANT_DOCS i zmienić argument z
ON na
OFF. Musisz to wykonać ponieważ, wcześniej nie wspomniałem o zainstalowaniu paczek potrzebnych na wygenerowanie dokumentacji. Zrobiłem to ponieważ wygenerowanie dokumentacji jest trudne, trzeba posiadać sporo wiedzy do konfiguracji programów które tym się zajmą. Sami autorzy proponują odznaczyć tę opcję i korzystać z oficjalnej dokumentacji, jest ona zawsze aktualizowana. Link do tej dokumentacji znajduję się w części pierwszej.
Następnie znajdź parametry
WANT_DEMO oraz
WANT_EXAMPLES i zmień ich argumenty z
ON na
OFF. Piszę to ponieważ często powstają przez to błędy, wykonaj najpierw sprawdzoną metodą, następnie spróbuj wykonać dla siebie jak wolisz. Po powyższych zmianach wciskamy klawisz
C aby wprowadzić zmiany, jeżeli pojawi się znów komunikat o błędzie który opisałem powyżej wciśnij klawisz
E. W dolnym menu ukaże się dodatkowa opcja, wybieramy ją aby wygenerować ustawienia i zamknąć, klikamy klawisz
G. Jeśli ukaże Ci się znów komunikat o błędzie, który będzie zawierał informacje dla deweloperów projektu, wciśnij klawisz
E aby zamknąć.
Krok 8 - Budowanie i instalacja biblioteki
Teraz przyszedł czas na zbudowanie i zainstalowanie biblioteki, w tym celu w katalogu
build wydajemy polecenie
# make. Następnie instalujemy bibliotekę wykonując polecenie
# make install.
Krok 9 - Oczyszczenie systemu z zbędnych plików
Czyścimy system z zbędnych plików, w tym celu przechodzimy do katalogu użytkownika gdzie jest folder
allegro5.
cd /home/michal037 następnie wykonujemy polecenie
# rm -rf allegro5.
Krok 10 - Wyjście z konta administratora
Możesz teraz wyjść z konta z uprawnieniami
root, wydaj polecenie
exit.
Krok 11 - Tworzenie plików do testu biblioteki
Musimy teraz utworzyć folder w którym będziemy przetrzymywać nasze projekty, ja w tym celu przeszedłem do katalogu swojego użytkownika
cd /home/michal037. Następnie wykonałem następujące polecenia:
mkdir workspace
cd workspace
mkdir 01_allegro5test
cd 01_allegro5test
touch main.c makefile
Teraz należy wypełnić plik
main.c oraz
makefile poniższą zawartością. W pliku
makefile zobaczysz wpisy dla kompilacji pod system Windows, możesz je zignorować. W następnym poście opiszę cross-compiling dla Windowsa. Jeżeli zainteresuję Cie to, będziesz mieć już gotowe ustawienia.
Plik
main.c#include <stdio.h>
#include <allegro5/allegro.h>
int main( int argc, char * argv[] ) {
ALLEGRO_DISPLAY * display = NULL;
if( !al_init() ) {
fprintf( stderr, "failed to initialize allegro!\n" );
return - 1;
}
display = al_create_display( 640, 480 );
if( !display ) {
fprintf( stderr, "failed to create display!\n" );
return - 1;
}
al_clear_to_color( al_map_rgb( 20, 80, 150 ) );
al_flip_display();
al_rest( 3.0 );
al_destroy_display( display );
return 0;
}
Plik
makefile
# Makefile for Allegro5 programs
####################
PROGRAM_NAME=program
SOURCES=main.c
####################
OUTPUT_DIR=bin
LINUX_GCC=gcc
LINUX_CFLAGS=-O2 -Wall
WINDOWS_GCC=i686-w64-mingw32-gcc
WINDOWS_CFLAGS=-O2 -Wall
ALLEGRO5_LINUX=`pkg-config --cflags --libs allegro-5 allegro_ttf-5 allegro_primitives-5 allegro_physfs-5 allegro_memfile-5 allegro_main-5 allegro_image-5 allegro_font-5 allegro_dialog-5 allegro_color-5 allegro_audio-5 allegro_acodec-5`
ALLEGRO5_WINDOWS=`pkg-config --cflags --libs allegro-5 allegro_ttf-5 allegro_primitives-5 allegro_physfs-5 allegro_memfile-5 allegro_main-5 allegro_image-5 allegro_font-5 allegro_dialog-5 allegro_color-5 allegro_audio-5 allegro_acodec-5`
export PKG_CONFIG_PATH=/usr/i686-w64-mingw32/lib/pkgconfig/
####################
.PHONY: all run clean help linux windows
all: linux
help:
@echo "##### HELP #####"
@echo "make all - build for linux and windows"
@echo "make clean - clean up"
@echo "make linux - build for linux only"
@echo "make windows - build for windows only"
@echo "make help - print this help"
@echo "################"
linux:
mkdir -p $(OUTPUT_DIR)/linux/
$(LINUX_GCC) $(LINUX_CFLAGS) -o $(OUTPUT_DIR)/linux/$(PROGRAM_NAME) $(SOURCES) $(ALLEGRO5_LINUX)
windows:
mkdir -p $(OUTPUT_DIR)/windows/
$(WINDOWS_GCC) $(WINDOWS_CFLAGS) -o $(OUTPUT_DIR)/windows/$(PROGRAM_NAME).exe $(SOURCES) $(ALLEGRO5_WINDOWS)
run:
$(OUTPUT_DIR)/linux/$(PROGRAM_NAME)
clean:
rm -rf $(OUTPUT_DIR)
Następne linie po
help: linux: windows: run: clean: zaczynają sie od tabulatora.
Krok 12 - Test poprawności działania biblioteki
Aby skompilować program, a następnie go uruchomić wydaj polecenia
make
make run
Powinieneś zobaczyć małe okno wypełnione kolorem.