4. díl - Céčko a Linux - Code::Blocks

C a C++ Céčko Linux Céčko a Linux - Code::Blocks

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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

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

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í

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

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

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í

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

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
  • 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

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

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

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

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ů

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

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

Tak... 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 zkusíme nějaký praktický příklad a podíváme se i na debuggování :)


 

  Aktivity (1)

Článek pro vás napsal David Novák
Avatar
Autor v současné době studuje FIT VUT Brno a zajímá se především o nízkoúrovňové programování (C/C++, ASM) a návrh hardwaru (VHDL). Je zde také členem výzkumného týmu ANT@FIT (Accelerated Network Technologies).

Jak se ti líbí článek?
Celkem (4 hlasů) :
55555


 


Miniatura
Předchozí článek
Céčko a Linux - Debugging
Miniatura
Všechny články v sekci
Programování v jazyce C v Linuxu
Miniatura
Následující článek
Céčko a Linux - Code::Blocks podruhé

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!