16. cvičení
Modularizace
Ukázali jsme si, jak rozdělit zdrojový kód do několika zdrojových souborů
(.c
) a jak je propojit pomocí hlavičkových souborů (.h
). Ve vývojovém
prostředí pro Windows je potřeba naklikat tzv. projekt a v něm vytvořit
jednotlivé zdrojové a hlavičkové soubory.
- Zdrojové soubory obsahují definice funkcí, struktur apod., stejně jako dosud.
S ohledem na spojení zdrojových souborů do jednoho programu je třeba zajistit,
aby každá funkce byla definována právě jednou, speciálně funkce
main
může být definována pouze v jednom zdrojovém souboru. - Hlavičkové soubory obsahují pouze tzv. deklarace a ne definice funkcí. Slouží k tomu, aby překladač věděl, jaké funkce jsou definovány v ostatních zdrojových souborech.
Překlad programu rozděleného do několika zdrojových souborů probíhá v několika fázích:
- Každý zdrojový soubor (
.c
) se přeloží na binární soubor (.o
) obsahující binární kód pro všechny funkce definované v daném zdrojovém souboru. - Všechny binární soubory
.o
se spojí, neboli slinkují do výsledného spustitelného souboru. Při linkování probíhá kontrola, všechny použité funkce jsou definovány právě jednou, a že existuje funkcemain
. Při linkování je možné připojit i tzv. knihovny obsahující dodatečné funkce. Linkování standardní knihovny obsahující funkce jako např.printf
probíhá implicitně.
Poznámka: Ve Windows nesmí být projekt uložen na síťovém disku, protože
terminál ve Windows (CMD.EXE
) neumí pracovat s tzv. UNC cestami a defaultně
přejde do adresáře C:\WINDOWS\
, kde naše zdrojáky pochopitelně nejsou. Pokud
si zdrojové soubory ukládáte na flash disk apod., dejte si také pozor na to,
jestli má disk vždy stejné písmenko.
Poznámka: Ve Windows cesta k adresáři s projektem nesmí obsahovat znaky mimo ASCII tabulku (např. znaky s diakritikou), jinak překlad projektu nebude fungovat.
Želví grafika
Kreslení obrázků pomocí želví grafiky.
Instalace knihovny SDL
Pro práci s grafikou použijeme knihovnu SDL, kterou je potřeba nainstalovat. Pro jednoduchost jsem připravil archivy pro Windows i pro Linux, které stačí rozbalit: viz adresář zelva.
V archivu pro Windows jsou adresáře i686-w64-mingw32
pro 32 bitový systém a
x86_64-w64-mingw32
pro 64 bitový systém, zkopírujte si příslušný adresář dle
vašeho systému a přejmenujte dle vlastní fantazie (např. ProjectZelva
). Dále
je potřeba zkopírovat soubor SDL2.dll
z podadresáře bin
o úroveň výš, kde
budete vytvářet zdrojové soubory.
Zdrojové soubory
Z adresáře zelva si stáhněte zdrojové soubory zelva.h
, zelva.c
,
obrazek.c
a uložte je do adresáře s knihovnou SDL (např. ProjectZelva
). Pro
Linux si stáhněte také soubor Makefile
a uložte ho tamtéž. V adresáři projektu
by tedy měly být tyto soubory a adresáře:
bin/
include/
lib/
Makefile
(jen Linux)obrazek.c
SDL2.dll
(jen Windows)share/
zelva.c
zelva.h
Překlad zdrojových souborů
V Linuxu spusťte terminál, přejděte do adresáře se zdrojovými soubory a spusťte
příkaz make
. Výsledný program se jmenuje obrazek
.
Ve Windows vytvořte projekt v daném adresáři a přidejte do něj zdrojové soubory
zelva.h
, zelva.c
a obrazek.c
. V nastavení projektu je potřeba naklikat
„include path“ (cesta k podadresáři include
), „library path“ (cesta k
podadresáři lib
) a „linker options“ (parametry -lSDL2 -lm
). Takto vytvořený
projekt by měl jít zkompilovat a spustit (pokud jste zkopírovali soubor
SDL2.dll
).