IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 4 - Céčko a Linux - Code::Blocks

V minulé lekci, Céčko a Linux - Debugging, jsme debuggovali. Doposud jsme programovali bez IDE - pouze s použitím terminálu, editoru a pomocných nástrojů.

V tomto, již čtvrtém díle, si ukážeme Code::Blocks. Je to relativně jednoduché prostředí, které vás hned nezahltí, ale zároveň nabízí snad vše, co může programátor potřebovat. Oproti složitějším prostředím za vás nepíše žádný kód (ale umí napovídat názvy funkcí), což je dle mého názoru pro začátečníky nejvhodnější - je důležité pochopit základy a umět je využívat, ne si jen "naklikat tlačítkovou aplikaci" a připsat tam k OnClick pár řádků, co něco dělají. Pravda, je to výrazně pohodlnější a rychleji aplikaci vytvoříte, ale z mé vlastní zkušenosti to není příliš dobré pro výuku. V tomto tutoriálu tedy budeme tvořit konzolové aplikace s využitím pouze standardních knihoven. Zmínil bych ještě, že v tomto díle nejsou nutně třeba znalosti z prvních tří dílů (i když se vám budou jistě hodit), takže pokud nechcete terminál a textový režim ani vidět, ničemu to nevadí a můžete pokračovat až od tohoto dílu. :)

Code::Blocks si můžeme nainstalovat buď přes konzoli (viz. Tutoriál Linux) nebo pomocí Ubuntu Software Center. Jako překladač budeme používat GNU GCC, který by již měl být nainstalován. Pokud ne a nevíte, jak jej doinstalovat, podívejte se na úvodní článek, ve kterém je vše ukázáno.

Po spuštění Code::Blocks se nám zobrazí následující okno.

Hlavní prostředí Code::Blocks - Linux a programování v jazyce C

Nastavení Code::Blocks

Hned ze začátku se podíváme do nastavení překladače. Settings->Compiler->Compiler settings->Other options. Zde napíšeme -std=c99 -Wall -Wextra -pedantic

  • -std=c99 nastaví používaný standard jazyka
  • -Wall zapne produkci varovných zpráv – upozorní nás na spoustu chyb a potenciálních problémů
  • -Wextra zapne částečnou sémantickou kontrolu a produkci dalších varování
  • -pedantic vynutí striktní využití nastaveného standardu (důležité pro přenositelnost programu na jiné platformy) – nedovolí nám například využít tzv. platform-specific funkce (vázané na platformu)
Nastavení překladače v Code::Blocks - Linux a programování v jazyce C

Pak si doporučuji nastavit automatického ukládání. Settings->Environment->Autosave. Nastavte si to každý tak, jak vám to vyhovuje. Já osobně používám docela agresivní nastavení. Když nepřemýšlíte, ale píšete rovnou kód, můžete toho i za 5 minut napsat hodně a naštve to, když o to přijdete.

Nastavení automatického ukládání - Linux a programování v jazyce C

Vytvoření projektu

Tak... Máme nastaveno (samozřejmě si v nastavení můžete hrát i dál, ale toto prozatím stačí.) Další logický krok asi bude vytvořit si nový projekt. (Chceme něco napsat, že?) Vybereme tedy Create a new project. „Vyskočí“ na nás velké množství možností, jaký projekt chceme vytvořit. Nás bude zajímat Console application.

Vytvoření nového projektu - Linux a programování v jazyce C

V dalším okně vybereme C a dáme Next. Dále si vybereme složku pro umístění projektu (v té se vytvoří podsložka s názvem projektu) a zadáme název projektu. Název souboru se vyplní automaticky (můžeme jej ale samozřejmě upravit). Je dobrým zvykem vybírat jména bez diakritiky a mezery nahrazovat podtržítkem (nějak takhle: pokusny_projek­ticek).

Zadání jména a cesty - Linux a programování v jazyce C

Poslední úkon bude výběr kompilátoru. Necháme defaultní – GNU GCC. Zajímavé jsou konfigurace.

  • Debug – do kompilované binárky přidá debuggovací informace, neprobíhá žádná optimalizace kódu (v praxi přidá do nastavení kompilátoru -g)
  • Release – oproti Debugu naopak odstraní maximum nepotřebných informací (výsledkem je menší soubor) a zapne optimalizace kódu (přepínač -O2)
Nastavení konfigurací - Linux a programování v jazyce C

Po potvrzení se prostředí změní - v levé části přibyl náš projekt a zmizela úvodní obrazovka.

Prostředí s vytvořeným projektem - Linux a programování v jazyce C

Kompilace projektu

Než půjdeme dál, podíváme se trochu blíže na možnosti kompilace.

Možnosti překladu v Code::Blocks - Linux a programování v jazyce C
  • Build – přeloží vybraný projekt
  • Run – spustí vybraný projekt (výhodné, když například testujeme program s různými vstupy – pokud je program rozsáhlejší, nebo používáme Release, kompilace by zdržovala)
  • Build and run – přeloží a spustí vybraný projekt

    Rebuild – smaže všechny soubory a znovu zkompiluje celý projekt (např. když změníme nastavení kompilátoru)

  • Abort – přeruší běžící proces (pomocí tohoto můžeme ukončit program, např. když se dostane do nekonečného cyklu)
  • Poslední možnost je vybrat Build configuration (nebo také Target) – my tu máme Debug a Release. V této konfiguraci pak bude probíhat kompilace.

Když se podíváme do levé části obrazovky, uvidíme sidebar Management, kde najdeme všechny naše otevřené projekty (a jejich soubory). Prozatím se tomuto nebudeme věnovat do hloubky a jen si ukážeme základy. Aktivní projekt (ten se bude spouštět, když stiskneme Run) je zobrazen tučně. Projekty vedle sebe mají logo Code::Blocks. Když projekt rozbalíme, uvidíme složky, které mu patří. My tu máme jen složku Sources, kde najdeme soubory se zdrojovým kódem, konkrétně main.c. Ten otevřeme.

Otevření projektu - Linux a programování v jazyce C

Vidíme před sebou vzorový kód pro Hello world. Klikneme na Build (Ctrl+F9) a všimneme si spodní části okna – Logs & others. Zde se vypisují všechny informace o tom, co se děje. V budoucnu zde najdeme například chybové hlášky překladače.

Log - Linux a programování v jazyce C

Prozatím si můžeme všimnout této řádky:

gcc -g -std=c99 -Wall -Wextra -pedantic  -c /media/sf_FIT/C/ITNetwork/uvod/main.c -o obj/Debug/main.o

Vidíme, že naše nastavení kompilátoru se opravdu aplikovalo při překladu projektu. Pokud se podíváme do složky projektu, zjistíme, že se nám ve složce bin/Debug objevila spustitelná binárka (spustit ji můžeme z terminálu). Složku obj můžeme prozatím ignorovat.

Spuštění projektu z terminálu

Otevřeme si terminál, přesuneme se do složky s projektem/bin/Debug a program spustíme (./název_projektu). Mimochodem, toto si můžete velmi urychlit a usnadnit aplikací nautilus-open-terminal (viz. první díl). Bude to vypadat nějak takhle.

Spuštění v terminálu - Linux a programování v jazyce C

Spuštění projektu v Code::Blocks

Druhou (a rychlejší) možností je spustit projekt přímo z našeho vývojového prostředí. Klikneme na Run (Ctrl+F10) a náš program se spustí v XTerm. Ten nám navíc ukáže i jak dlouho trvalo vykonání celého programu, jeho návratovou hodnotu (návratovou hodnotu funkce main) a také ho pozastaví, takže se hned nezavře a my se tak můžeme podívat, co vypsal.

Spuštění z IDE - Linux a programování v jazyce C

Spuštění s argumenty

V dalších dílech si ukážeme, jak pracovat s argumenty programu – konzolová aplikace by se ve většině případů neměla uživatele na nic ptát a veškerý vstup a nastavení by mělo být realizováno právě skrze argumenty. V Code::Blocks je možné nastavit argumenty programu přes dialogové okno Project->Set program's arguments. Zde si vybereme pro kterou konfiguraci chceme nastavovat argumenty. Ty zapíšeme do Program arguments: Jednotlivé argumenty jsou oddělené mezerou. Při dalším spuštění programu se spustí se argumenty, které jsme zadali.

Nastavení argumentů - Linux a programování v jazyce C

Jak přesně se aplikace spustila najdeme v Logu. V našem případě se nám objeví uvod/bin/Debug/uvod argument1 argument2 (samozřejmě plus celá cesta).

Konfigurace

Při vytváření projektu jsme se setkali s konfiguracemi debug a release. Nic nám ovšem nebrání ve vytvoření nových, vlastních konfigurací (targets, cíl). Můžeme je vytvořit ve vlastnostech projektu. Project->Properties

Konfigurace - Linux a programování v jazyce C

První možnost je vytvořit úplně novou a vše nastavit ručně. Stačí kliknout na Add. Výrazně jednodušší je ale použít Debug nebo Release jako vzor. Pokud to chceme udělat, klikneme na Duplicate. Tím nám vznikne kopie a my si pak například můžeme nastavit několik konfigurací se stejným nastavením, ale jinými argumenty (protože jsme líní to pokaždé přepisovat) nebo i jiným nastavením kompilátoru. To můžeme změnit v Project->Build options. Nová konfigurace se také objeví v sekci Build, kde projekt kompilujeme a spouštíme.

Překlad - Linux a programování v jazyce C

To by bylo dnes asi vše. Je to jednoduché a přehledné, že? Vývojové prostředí nám může mnohdy usnadnit práci (ale obecně platí, že na menší věci je zbytečné ho používat a někdy je může i zkomplikovat).

Příště si v lekci Céčko a Linux - Code::Blocks podruhé zkusíme nějaký praktický příklad a podíváme se i na debuggování v Code::Blocks.


 

Předchozí článek
Céčko a Linux - Debugging
Všechny články v sekci
Linux a programování v jazyce C
Přeskočit článek
(nedoporučujeme)
Céčko a Linux - Code::Blocks podruhé
Článek pro vás napsal David Novák
Avatar
Uživatelské hodnocení:
11 hlasů
Autor se zajímá především o nízkoúrovňové programování (C/C++, ASM) a návrh hardwaru (VHDL).
Aktivity