====== Kompilace ======
===== GCC =====
Toto je základní varianta pro použití v učebnách.
Pro kompilaci pomocí gcc je třeba mít speciální konfiguraci kompilatoru gcc a to ''arm-linux-gnueabihf-gcc''. V laboratořích a na serveru Postel je tento kompilátor k dispozici.
^ Binární balíčky ^^
| Debian/Ubuntu | ''crossbuild-essential-armhf'' |
| ArchLinux | ''arm-linux-gnueabihf-{gcc,gdb,glibc,binutils}'' |
Seznam je průběžně doplňován. Další balíčky můžete navrhnou svému cvičícímu.
===== Zig cc / Clang =====
Doporučeno pro macOS a Windows
Kompilátor ''Clang'' umožnuje crosscompilaci bez nutnosti specializovaného compileru, nicméně sám o sobě neneřeší druhotné problémy, jako jsou například základní knihovny. S tím nám pomůže nástroj ''zig cc'' (pro jazyk C), případně ''zig cxx'' (pro C++).
==== Instalace ====
Nejjednodušší variantou je instalace pomocí správce balíčků, která je ale dostupná pouze pro některé systémy. [[https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager|Detaily naleznete zde.]]
Pokud váš systém není na seznamu, stáhněte si přímo spustitelný soubor ([[https://ziglang.org/download/|zde]]) a umístěte jej do zvoleného adresáře v ''path''. Alternativně můžete v ''Makefile'' použít absolutní cestu ke spustitelnému souboru.
==== Použití ====
Nahraďte v ''Makefile'' ''arm-linux-gnueabihf-gcc'' za ''zig cc --target=arm-linux-gnueabihf'' a ''arm-linux-gnueabihf-gcc'' za ''zig cxx --target=arm-linux-gnueabihf''
==== Další informace ====
[[https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html|`zig cc`: a Powerful Drop-In Replacement for GCC/Clang]]