Vývojová prostředí a překladače
V minulé kapitole jsem ukázal zdrojové kódy pro jazyk C a C++. Nyní vám představím programy, které vám pomohou z těchto zdrojáků vytvořit skutečné programy.
Samotný překladač umožní vytvořit ze zdrojáků program, ale s rostoucím projektem budete možná chtít více než jen překladač …
Vývojová prostředí (zkratka IDE = Integrated development environment) je sada nástrojů, která vám bude pomáhat nejen s překladem zdrojových kódu, ale i s laděním programů (hledáním chyb), udržováním přehledu ve zdrojových kódech a dalších souborech potřebných pro běh vámi vytvářeného programu, bude vám napovídat názvy funkcí a typy jejich argumentů, zobrazí vám rychle nápovědu atp.
Překladač se anglicky nazývá compiler, proto někdy uslyšíte místo „překladač“ počeštěné „kompiler“ a místo „překládat“ „kompilovat“.
Pro začátek ale nebudete moc mimo, když si budete myslet, že vývojové prostředí je jen chytřejší textový editor, který umí barevně zvýrazňovat syntaxi zdrojového kódu a spustit překladač, který vytvoří ze zdrojového kódu program. Důležité je si uvědomit, že je jedno jestli zdroják napíšete v nějakém nabušeném vývojovém prostředí, nebo notepadu – program ze zdrojáku vytváří překladač (který můžete spustit sami, nebo pomocí vývojového prostředí).
Windows API
Než vám představím několik IDE a překladačů do Windows, udělám úkrok stranou a zmíním se o tzv. Windows API (API = application programming interface, tj. rozhraní pro programování aplikací).
Windows API není nic jiného, než sada knihoven (instrukcí napsaných pro jazyk uložených v nějakém souboru), které můžete využívat při programování k vytváření „windowsovských“ aplikací. Do vašeho kódu stačí vložit tento řádek:
Toto vloží hlavičkový soubor windows.h
. V hlavičkovém souboru jsou popsány
funkce knihovny windows (překladač ten popis potřebuje, když váš zdrojový kód tyto
funkce používá). Pak můžete používat funkce
z windows knihovny, jako například WinMain()
(namísto funkce main()
,
viz příklad hello.c), nebo CreateWindow()
pro
vytvoření okna atd. Můžete tak pomocí tohoto rozhraní snadno vytvářet a ovládat
standardní objekty Windows (jako ta zmíněná okna, nabídky, tlačítka,
roletové menu atd.).
Hlavičkový soubor windows.h
a přislušnou knihovnu funkcí nevytváří nikdo jiný,
než sám Microsoft. Nejedná se tedy o standardní knihovnu a jinde než na Windows se s ní nesetkáte.
Později se v tomto kurzu naučíte psát vlastní hlavičkové soubory a k čemu vlastně jsou.
API je něco, co si může vymyslet a vytvořit každý, není součást standardu jazyka C ani C++. Já se Windows API věnovat nebudu. Tím, že jsem se zmínil že existuje, kdo ho vytváří a k čemu je, považuji téma Windows API za uzavřené :-). Pouze se dále budu zmiňovat o tom, které překladače umí Windows API a které ne, protože si myslím, že se k Windows API jednou možná dostanete. Chcete-li se naučit používat Windows API, stejně se nejdříve musíte naučit jazyk C/C++.
Překladač pro Linux
Protože jsem se rozhodl věnovat programování v Linuxu v samostatném kurzu, seznámím vás teď jen letmo s překladačem gcc, resp. g++, které se používají v Linuxu k překladu nejčastěji. Zde uvedené informace by vám měly vystačit až do konce tohoto kurzu o C/C++.
Teď tedy ukáži, jak použít překladač gcc
k vytvoření programu.
(Už jste napjatí?) Uživatelé Windows mohou tuto část s klidem přeskočit.
Překladač gcc
je většinou již v Linuxu nainstalován.
Pokud ne, určitě bude součástí standardních balíčků vaší distribuce.
Vezměte si zdrojové kódy z předchozí kapitoly a přeložte je příkazem:
respektive pro C++:
„hello“ je název výsledného spustitelného programu. Spustíte jej jednoduše příkazem:
Soubory hello.c (hello.cpp) jsou textové soubory obsahující zdrojový
kód. Místo gcc můžete mít překladač cc
a místo g++ c++
.
Vyzkoušejte, který máte. (Záleží na vaší distribuci Linuxu/Unixu).
Používejte textové editory, které dokáží barevně zvýraznit syntaxi programovacího jazyka. V Linuxu je jich hafo (vim, emacs, nedit atd.). I ve Windows se najdou dobré editory (například PSPad). Jinou možností je používat komplexní vývojová prostředí, o kterých bude řeč dále. Vždycky však ukládejte zdrojové kódy jako text a ne jako např. „dokument Microsoft Word“. Takovému dokumentu by překladač nerozuměl.
Překladač gcc se v Linuxu používá k překladu většiny programů napsaných v C/C++, dokonce i k překladu samotného jádra Linuxu. Některá z vývojových prostředí níže popsaných existují i pro Linux a k překladu využívají právě gcc. (I když u většiny vývojových prostředí je možné si nastavit, jaký překladač chcete používat).
Kromě překladače gcc
existuje v Linuxu i novější překladač
clang
(resp. clang++
pro c++). Ten si vytknul
za cíl být rychlejší než gcc
a vytvářet i rychlejší
(optimalizovanější) kód. Nejspíš ho také najdete mezi balíčky
vaší linuxové distribuce. clang
má navíc daleko srozumitelnější
chybové hlášky než gcc
, proto vám jej doporučuji používat místo gcc
.
Vývojová prostředí
Code::Blocks
Code::Blocks je asi to nejlepší vývojové přostředí, co můžete mít zdarma. Existuje verze pro Linux i Windows. Spolupracuje s mnoha překladači (například s C++ Builder, který umí Windows API, nebo s gcc/g++, a to i ve Windows), dokáže importovat projekty z Bloodshed Dev-C++, je rozšířitelný mnoha pluginami, je přehledný a snadno v něm vytvoříte multiplatformní programy (pro Linux i Windows). Code::Blocks je určitě správná volba. K dispozici je i český manuál.
Bloodshed Dev-C++ a wxDev-C++
Bloodshed je (kdysi jedno z nejpopulárnějších) free vývojové prostředí, využívající k překladu minGW (což je přenesená verze linuxového gcc). Je malý, rychlý a jednoduchý. Je to velice pěkný program a mohu ho začátečníkům jen doporučit, protože jeho jednoduchost je pro ně velikou výhodou. A umí česky. Jeho vývoj, jak se zdá, v roce 2005 umřel. Vývoj Dev-C++ ale převzala jiná parta programátorů, nazvala jej wxDev-C++. Další, aktuálně udržovaný klon tohoto vývojového prostředí, se jmenuje Orwell Dev-C++.
CodeLite
O CodeLite by se dalo napsat skoro to samé, jako o Code::Blocks. Tyto dvě prostředí jsou přímí konkurenti a je těžké říct, které je lepší. Osobně mám raději Code::Blocks, ale vám se třeba bude víc líbit CodeLite. Budete si je muset vyzkoušet :-). Nesporná výhoda CodeLite je, že je jeho uživatelské rozhraní přeloženo do češtiny.
DJGPP
DJGPP je linuxový překladač gcc přenesený do prostředí Windows a je zdarma.
Kromě
překladače také obsahuje sadu nástrojů a knihoven, které vám pomohou vytvářet
32-bitové programy v prostředí MS-DOS/MS-Windows. DJGPP pro vás bude tou pravou
volbou, pokud budete chtít psát programy pro Linux i MS-DOS, nebo vytvářet
přenositelné hry a grafické programy, nebo si prostě zkusit
„linuxové programování“ v prostředí Windows.
Na DJGPP je také výborné, že pracuje jak ve starém MS-DOSu,
tak ve Windows 3.0 i v těch nejnovějších
Windows které máte. Nezabere také mnoho místa.
Lze jej používat jako gcc z příkazové řádky, nebo můžete využít vývojové
prostředí RHIDE, které je velice podobné legendárnímu (prastarému) IDE
od Borlandu.
Visual Studio Professional/Enterprise
Microsoft Visual Studio je nejlepší nástroj pro vývoj aplikací pro Windows. Jedná se o
tzv RAD (Rapid Applications Development) prostředí. RAD je
nejen pěkný marketingový název. V tomto prostředí máte vizuální pomůcky pro
sestavování aplikace. Prostě a jednoduše, vidíte před sebou formulář a na ten
můžete myší natahat běžné prvky z Windows jako například tlačítka, záložky,
menu atp. Změnu vlastností prvků můžete nastavit v přehledném editoru
vlastností.
Visual Studio je úzce spjato s technologií .NET.
Na jeho koupi si připravte pár tisíc korun. Můžete si však stáhnout a
vyzkoušet jeho Trial verzi. Zaručuji vám 60 dní plných zábavy
a neutuchajícího nadšení. Pro náš kurz programování v C/C++ je to však poměrně
nevhodné prostředí (kladivo na komára).
Visual Studio Community
Microsoft Visual Studio Community Edition je zdarma.
Rozhraní je totožné, jako u placených verzí, jen toho umí méně.
Přesto je to nejlepší prostředí pro vývoj aplikací ve Windows API, co
je zdarma.
Visual Studio je úzce svázáno s platformou .NET a je navržen pro
programování v C++, ale nehodí se moc pro náš výukový kurz jazyka C.
Pro začátečníky je totiž možná až příliš složitý. Přesto, všechny zdrojové
kódy z tohoto tutoriálu upravil tak, aby fungovaly i ve Visual Studiu.
Microsoft Visual Studio (všechny edice), v závislosti na nainstalovaných součástech, zabírají několik (desítek) GiB místa na disku.
RAD Studio
C++ Builder bylo, obdobně jako Visual Studio, RAD vývojové prostředí od legendární společnosti Borland. Po neslavném konci firmy Borland převzala vývoj frima Embarcadero. Můžete si stáhnout trial verzi RAD Studia (po zaregistrování). Kdysi to byla jednička ve vývojovém prostředí, nyní je to dvojka (byla mu vyčítána hlavně nestabilita a chybovost, ale to snad už dnes není pravda). Prostředí je určeno pro jazyk C++. Koupit se dá cca od 85 000 Kč (v roce 2017). Jinak se o něm dá napsat to samé, co o Visual Studiu (až na to, že jsem překlad příkladů z tohoto tutoriálu v RAD studiu nezkoušel).
Stáhnout RAD Studio (free trial)
Embarcadero Free C++ Compiler / Starter edition
Kromě RAD Studia si můžete také stáhnout moderní Free C++ Compiler. A nejen to.
Také si můžete stáhnout vývojové prostředí Starter edition a dokud nebudete vydělávat
víc jak 1000$ za rok, tak ho používat zdarma. (Budete se muset zaregistrovat a na e-mail vám přijde sériové číslo.)
RAD studio si bohužel nerozumí moc jazykem C, ani s knihovnami, které jsou potřeba např. pro programování OpenGL. Pro začátečníky toto vývojové prostředí tedy nedoporučuji.
Stáhnout C++Builder Community Edition
Stáhnout Free C++ Compiler
(Není potřeba, pokud si stáhnete Start Edition)
Eclipse
Eclipse je velice pěkné vývojové prostředí, ale především pro Javu. Do Eclipse lze pomocí pluginů zakomponovat podporu pro spoustu dalších programovacích jazyků, včetně C/C++. Bohužel, nainstalovat takové pluginy a naučit se je ovládat dá (začátečníkům) dost práce. Prostředí je to vhodné především pro lidi, kteří programují v Javě, nebo pro ty, co programují v několika jazycích a chtějí používat jednotné vývojové prostředí. Eclipse existuje ve verzi pro Windows i Linux.
NetBeans
Vývojové prostředí napsané v Javě a primárně pro Javu, ale pomocí pluginu lze používat i pro C/C++. Existuje verze pro Linux i Windows a je zdarma. Toto prostředí je přímým konkurentem pro Eclipse. Je mladší a osobně jej mám rači :-). Určitě najdete na netu spoustu hádek o tom, které z těchto prostředí je lepší :-). NetBeans (ani Eclipse) nejsou dodávány s překladačem jazyka C, takže si budete muset nějaký doinstalovat a nastavit (gcc třeba) …
Anjuta
Anjuta je Linuxové vývojové prostředí napsané pro GTK/GNOME, kdysi velmi oblíbené. Bývá součástí standardních balíčků linuxových distribucí. Možná se vám bude líbit. Jako překladač využívá gcc /g++ (co taky jiného v Linuxu :-).
A další…
Existuje ještě mnoho dalších populárních, moderních a univerzálních IDE, jako je např. Microsoft Studio Code nebo Sublime. Co mají společné je, že je potřeba je správně nakonfigurovat, aby vám pomáhali s překladem zdrojových kódu, napovídaly názvy funkcí atp. (obdobně jako NetBeans nebo Eclispe). Neptejte se mě, prosím, jak na to ;-).
Závěr
Asi vám teď jde ze všech těch vývojových prostředí a překladačů hlava kolem. Pro začátečníka není lehké vybrat si, tak vám zkusím trochu poradit.
Pokud budete programovat v Linuxu, vývojové prostředí vlastně vůbec nebudete v tomto kurzu potřebovat. Programy zde probírané se většinou skládají z jednoho, max. dvou souborů a k jejich správě opravdu nepotřebujete složité vývojové prostředí. Vystačíte si s obyčejným textovým editorem (třeba Vim nebo Emacs) a překladačem gcc / g++ / clang / clang++.
Pokud už si chcete vyzkoušet vývojové prostředí a nebojíte se angličtiny, berte Code::Blocks. Pokud se bojíte angličtiny, zkuste CodeLite nebo Anjutu.
Pokud chcete programovat ve Windows i Linuxu, jediná správná volba je Code::Blocks.
Pokud chcete programovat jen ve Windows, můžete začít s tím nejjednodušším – (Orwell) Dev-C++. Nebo, jestli se nebojíte angličtiny, vyberte si Code::Blocks. A nebo, pokud máte pro strach uděláno, jděte rovnou do Visual Studia Community Edition. (Na to byste měli dříve nebo později přejít tak jako tak, pokud se chcete orientovat jen na Windows). Výhoda těchto vývojových prostředí je, mimo jiné, že se instalují rovnou s překladačem.
Osobně nejraději začátečníkům doporučuji Orwell Dev-C++, protože se jednoduše nastavuje a používá,
nemusíte vytvářet projekt kvůli jednomu zdrojovému kódu, nezobrazuje správně
UTF-8 kódování (na rozdíl od Visual C++, které UTF-8 kódování zobrazí správně,
což vede ke zmatkům, kdy zdrojový kód vidíte správně,
ale výsledný program vypisuje nesmysly. O kódování bude samostatná kapitola …),
Je malý, rychlý, můžete snadno přepínat mezi 32 a 64 bitovým překladačem
a je to open source.
Pro Visual Studio najdete ve zdrojových kódech ke stažení předpřipravené „Solution“ s projekty. Kvůli tomu, aby příklady ve Visual Studiu (resp. Windows) fungovaly, jsem musel udělat ve zdrojových kódech několik úprav. Úpravy zdrojových kódů kvůli Visual Studiu jsou v průběhu tutoriálu popisovány ve stejně vyznačeném rámečku, jako je tento.
Až se vám podaří přeložit zdrojové kódy hello.c
a
hello.cpp
, budete king (queen) a můžete se vrhnout na studování syntaxe jazyka C.
To teprve přijde ta správná zábava :-).