Hlavní navigace

SDL: Hry nejen pro Linux (2)

1. 3. 2005
Doba čtení: 3 minuty

Sdílet

Ve druhé části série si ukážeme, jak nainstalovat SDL, a dále budou uvedeny "step-by-step" návody na vytvoření SDL projektů v gcc, MS Visual C++ a Dev-C++.

Instalace SDL

Jak už bylo zmíněno na konci minulého dílu, v linuxových distribucích bývá SDL standardně přítomno, ale pravděpodobně bude nutné doinstalovat balíčky pro vývoj (devel). U jiných operačních systémů lze při požadavku na nejnovější verzi či při ruční kompilaci stahovat z download stránky webu SDL.

V Linuxu se instalace ze zdrojových kódů provádí klasicky pomocí ./configure; make; make install, ve Windows je nejjednodušší cestou vzít předkompilovanou dynamickou knihovnu SDL.dll a zkopírovat ji buď do adresáře C:\Windows\Sys­tem32\, nebo ke každému vytvářenému projektu zvlášť. Ať už používáte jakýkoli operační systém, nikdy byste neměli zapomenout přiložit k vašemu projektu také informační soubor README-SDL.txt.

Ukázkový program

Vzhledem k tomu, že se při vytváření nového programu začíná vždy založením projektu, budeme tak postupovat i my. Na popis zdrojového kódu se však vzhledem k místu nedostane, vše bude probráno až v následujících dílech.

Velice jednoduchý ukázkový program vytvoří prázdné okno a poté bude čekat na stisk klávesy ESC, tím se ukončí. Nic extra efektního, ale aspoň budeme mít kontrolu, že jsme SDL dokázali zprovoznit.

Screenshot ukázkového programu

gcc

Pokud je SDL nainstalováno, měl by jít zdrojový kód zkompilovat například následovně

$ gcc -o sdl02 sdl_02.cpp `sdl-config --cflags --libs`

Výše uvedený příkaz sdl-config se nainstaloval automaticky s SDL a slouží především k určení cest k hlavičkovým souborům a knihovnám. Před vlastním spuštěním gcc bude obsah části ve zpětných apostrofech proveden shellem a nahrazen do výsledné formy (na mém systému).

$ gcc -o sdl02 sdl_02.cpp -I/usr/include/SDL -D_REENTRANT
-L/usr/lib -lSDL -lpthread

Mimochodem, všechny volby sdl-config lze získat spuštěním bez parametrů

$ sdl-config
Usage: sdl-config [--prefix[=DIR]] [--exec-prefix[=DIR]]
[--version] [--cflags] [--libs] [--static-libs]

Visual C++ (6.0)

Aby IDE vědělo, kde má hledat hlavičkové a knihovní (LIB) soubory, je nejprve nutné přidat v menu Tools → Options → Directories absolutní cesty k podadresářům include a lib z rozbaleného archivu SDL-devel-1.2.8-VC6.zip.

Dále se vytvoří nový Win32 Application projekt popř. Win32 Console Application projekt, pokud je požadavkem i výstup do konzole. V menu Project → Settings → C/C++ → Code Generation se v listboxu Use run-time library navolí Debug Multithreaded DLL (pro Debug verzi programu) nebo Multithreaded DLL (pro Release verzi programu). To se musí vykonat u každého nově vytvářeného projektu, jinak jeho kód nepůjde zkompilovat.

Zbývá přilinkovat knihovny SDL.lib a SDLmain.lib, to lze udělat buď přes nabídky ve vlastnostech projektu, nebo připsáním následujících dvou řádků ke kódu.

#pragma comment (lib, "SDL.lib")
#pragma comment (lib, "SDLmain.lib")

Bloodshed Dev-C++ (4.9.9.1)

Podobně jako u Visual C++ je nutné v menu Nástroje → Nastavení kompilátoru → Adresáře nastavit cesty k hlavičkových a knihovním souborům. Na tomto místě je nutné poznamenat, že devel archiv pro Visual C++ je v Dev-C++ nepoužitelný, pro něj slouží SDL-devel-1.2.8-mingw32.tar.gz. Dynamická knihovna SDL.dll je už ale samozřejmě společná.

Po vytvoření konzolového projektu se v menu Projekt → Vlastnosti projektu → Parametry přidají knihovny -lmingw32, -lSDLmain a -lSDL (v tomto pořadí). V případě, že bude na konec seznamu přidáno i -mwindows, nebude se zároveň s aplikací zobrazovat konzolové okno.

Jiné operační systémy a kompilátory

K jiným operačním systémům ani vývojovým prostředím nemám bohužel v současné době přístup. Pokud v nich máte se zprovozněním SDL problémy, mohl by vám pomoci SDL FAQ nebo klasicky Google. Také můžete zkusit diskusi níže, třeba se najde někdo chytrý…

skoleni

Makefile pro tyto články

Aby se nemuseli permoníci, co nosí pakety po síti, příliš namáhat, budou kompletní projekty pro všechna testovaná vývojová prostředí přiloženy pouze u tohoto článku. V příštích dílech bude přikládán pouze jednoduchý ručně psaný Makefile, který může při více souborech se zdrojovými kódy hodně věcí zjednodušit. Celý program se pak zkompiluje pouze zapsáním jediného make do příkazové řádky. Vývojová prostředí obsahují funkci přidání souborů do projektu, takže by se u nich neměly vyskytnou žádné větší problémy.

Download

Pokračování

Příště se v první části článku seznámíme s konvecemi názvů SDL funkcí a s SDL datovými typy a v druhé části se konečně začneme věnovat popisu knihovny z programátorského hlediska.

Autor článku

Backend programátor ve společnosti Avast, kde vyvíjí a spravuje BigData systém pro příjem a analýzu událostí odesílaných z klientských aplikací založený na Apache Kafka a Apache Hadoop.