Tvorba programů v prostředí OS GNU/Linux 2: Porovnání verzí
Řádek 20: | Řádek 20: | ||
výhodné pracovat v "grafickém režimu". Jestliže se po nalogování nacházíme v "textovém režimu", pro přechod do "grafického režimu" použijeme příkaz <tt>startx</tt>. | výhodné pracovat v "grafickém režimu". Jestliže se po nalogování nacházíme v "textovém režimu", pro přechod do "grafického režimu" použijeme příkaz <tt>startx</tt>. | ||
$ startx | |||
== Vytvoření pracovního adresáře == | == Vytvoření pracovního adresáře == |
Verze z 22. 10. 2006, 19:01
- Vytvoření aplikace, pro naprosté začátečníky
Kapitola obsahuje základní informace nutné pro vytvoření, kompilaci a spuštění jednoduchého C++ programu pod OS GNU/Linux. Použité nástroje:
- kompilátor GNU g++
- a textový editor GNU Emacs.
Přihlášení se k účtu na lokálním počítači
Pokud fyzicky sedíme u osobního počítače s OS GNU/Linux, musíme se nejprve přihlásit k účtu na tomto (lokálním) počítači. Po startu operačního systému GNU/Linux jsme vyzváni k zadání uživatelského jména a příslušného hesla. V případě úspěšného nalogování do systému mohou nastat dvě varianty, záleží na nastavení systému:
- nacházíme se stále v "textovém režimu"

- nacházíme se v "grafickém režimu" (vzhled závisí na použitém window manageru - např. Sawfish)

Neb při programování obvykle budeme používat několik souběžně otevřených oken (jedno pro editaci, kompilaci, ...), je výhodné pracovat v "grafickém režimu". Jestliže se po nalogování nacházíme v "textovém režimu", pro přechod do "grafického režimu" použijeme příkaz startx.
$ startx
Vytvoření pracovního adresáře
Otevřeme si okno terminálu (voláme program xterm), terminál zpravidla lze otevřít z menu, které daný window manager nabízí. V tomto terminálovém okně budeme pracovat - vytvářet nové adresáře, spouštět kompilátor, atd.

Před tvorbou nového C++ projektu/programu bychom měli vytvořit nový adresář, ve kterém bude nový projekt uložen (pro účely studia vytvářejte pro každé cvičení jeden adresář, např. cviceni1, cviceni2, ...). Adresář vytvoříme příkazem mkdir s parametrem jméno adresáře. Upozornění: běžný uživatel zpravidla může vytvářet nové adresáře a soubory pouze ve svém domovském adresáři $HOME.
Pro další práci se musíme do nově vytvořeného adresáře přesunout. Přechody mezi adresáři jsou realizovány příkazem cd, dále budeme používat příkaz pwd - příkaz vypisující název aktuálního (pracovního) adresáře.

Vytvoření zdrojového C++ souboru
Po změně aktuálního adresáře (zde adresář /home/honza/ahoj) je již možno vytvořit soubor obsahující zdrojový kód C++ programu, soubor nazveme pozdrav.cpp. Soubor vytvoříme spuštěním programu emacs s parametrem program.cpp
Tímto způsobem spustíme v novém okně program GNU Emacs s otevřeným souborem program.cpp. Situace vypadá následovně

V aktuálním bufferu GNU Emacsu editujeme soubor program.cpp, po editaci program uložíme klávesovou zkratkou C-x C-s

Nyní máme možnost ukončit program GNU Emacs pomocí klávesové zkratky C-x C-c. V této chvíli je však výhodnější program GNU Emacs s otevřeným souborem pozdrav.cpp nezavírat, viz dále.
Kompilace, vytvoření spustitelného souboru
Zde se (konečně) dostáváme k překladu našeho programu. Musíme se přepnout do okna terminálu a spustit kompilátor g++. Základní syntaxe je g++ nazev_souboru.cpp
Pokud kompilátor během kompilace programu "neoznámí" na výstupu chyby, vytvoří spustitelný soubor a.out. Tento soubor již můžeme spustit (upozorňuji na nutnost uvedení ./ před názvem spustitelného souboru)

Gratuluji, právě jste vytvořili vaší první C++ aplikaci. Obrazovka v tomto stádiu může vypadat následovně

Kompilace, vytvoření spustitelného souboru a opravy chyb
Na konci bodu číslo 3 jsem doporučoval neuzavírat před kompilací program GNU Emacs. Důvod je prozaický, při programování se dělají (nejen) syntaktické chyby, žádný i sebevíce zkušený programátor se chybám nevyhne, které je nutno v editoru opravit. Zkusme do našeho souboru program.cpp úmyslně zavléci dvě chyby (místo using namespace std; napišme using namepace std; a na řádce cout << .... vynechme ukončovací znak ;

Po přepnutí do okna terminálu spustíme kompilátor g++. Před přepnutím nesmíme zapomenout v programu GNU Emacs uložit soubor pomocí klávesové zkratky C-x C-s! Nyní již kompilátor během překladu vypíše na výstup chyby a spustitelný soubor nevytvoří.

Nyní se budeme cyklicky přepínat mezi oknem terminálu a oknem programu GNU Emacs. Vždy, když obdržíme od kompilátoru informace o chybách, pokusíme se chyby v editoru GNU Emacs opravit a upravený soubor uložit. Po přepnutí zpět do terminálu, spustíme další překlad - právě díky tomuto "sekvenčnímu" opravování chyb (kompilátor → editor → kompilátor → ...) je výhodné po editaci cpp souboru editor GNU Emacs neuzavírat.
U našeho ukázkového souboru pozdrav.cpp kompilátor oznamuje první chybu na řádce 5.

Opravíme chybu na řádce číslo 5 (místo slova namepace uvedeme klíčové slovo namespace), soubor uložíme a spustíme kompilátor. Kompilátor hlásí jednu chybu na řádce 9.

Pozn.: v editoru emacs se číslo řádky zobrazuje v mode-line, bezprostředně za znakem L.

Na řádce číslo 9 však překvapivě žádná chyba není. Příkaz na řádce číslo 7 není ukončen středníkem a kompilátor tedy předpokládá, že ukončení příkazu se nachází na řádkách následujících. To však není pravda a kompilátor označí chybu na řádce 9. Pokud přidáme na konec řádky 7 středník, proces kompilace již proběhne bez chyb.
Shrnutí základních bodů
- Nalogovování na lokální počítač, spuštění grafického uživatelského prostředí - systém X Windows.
- Vytvoření pracovního adresáře a následný přesun do tohoto adresáře.
- Otevření C++ souboru v editoru emacs, editace zdrojového kódu.
- Kompilace zdrojového souboru v terminálovém okně, v případě chyb editace v editoru GNU Emacs následná kompilace, ....
- Spuštění vytvořeného programu.
Dodatek
Předchozí text předpokládal fyzický přístup k počítači s operačním systémem GNU/Linux. Pokud fyzický přístup k takto vybavenému počítači nemáme (stále prý existují studenti nemající doma GNU/Linux) a přesto chceme vytvářet C++ programy v prostředí GNU/Linux, existuje možnost v podobě přihlášení se ke vzdálenému UNIXovému serveru (např. server panda2.fsv.cvut.cz). Po přihlášení k hostiteli (např. pomocí programu putty) je postup při tvorbě C++ aplikace téměř totožný s výše popsaným postupem. Jediným rozdílem je nemožnost otevření více oken současně (přestože uživateli nic nebrání přihlásit se k serveru 2x a vytvořit tak "dvě okna"). Veškerá práce (tedy editace a kompilace) bude nyní prováděna pouze v jednom okně. Po spuštění editoru emacs s parametrem nazev_souboru.cpp a následné editaci, soubor uložíme a editor GNU Emacs suspendujeme klávesovou zkratkou C-z. Nyní emacs běží na pozadí a uživatel může zadávat další příkazy
V této fázi lze spouštět překladač, po překladu je možno znova pokračovat v editaci po zadání příkazu fg či pomocí %emacs.
Tedy cyklus (editace -> suspendace editoru → kompilace → %emacs → editace → ...) nahrazuje cyklus s přepínáním oken.
[ zpět ]