DJGPP
DJGPP bohužel neběží v 64-bitových Windows. Můžete ho používat v DOSBoxu (nebo starších Windows), ale na vývoj komerčních aplikací už nestačí. Navíc překladač C++ už je zastaralý a obsahuje chyby. Na výuku programování C je DJGPP ale pořád super :-).
V předchozí kapitole jste si mohli prohlédnout překladače a vývojová prostředí (IDE) pro jazyky C a C++. V této kapitole se dozvíte co je to DJGPP, proč jej používat, jak jej nainstalovat a jak používat.
O DJGPP
DJGPP je linuxový překladač gcc přenesený do prostředí Windows/DOSu 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í DOS/MS-Windows. DJGPP pro vás bude tou pravou volbou především v těchto případech:
- učíte se jazyk C,
C++nebo Assembler - chcete se učit používat vývojové nástroje pro Linux v prostředí MS-DOS (prostě se nudíte)
- chcete vytvářet přenositelné hry (pomocí knihovny Allegro) nebo vytvářet grafická prostředí do konzole (DOSu) (a žijete v roce 1995)
- chcete psát v C programy přenositelné mezi DOSem a Linuxem (Unixem).
chcete přenést existující program z Linuxu do Windows- chcete být výstřední
K jeho výhodám určitě patří, že je zdarma a nezabere mnoho prostoru.
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 (a také v Linuxu).
Nezabere 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 IDE (Integrated development environment) od
Borlandu.
DJGPP se snaží dodržovat všemožné standardy, včetně např.
POSIXu
(takový Linuxový/Unixový standard). Protože však kvůli „hlouposti“ MS-DOSu
nelze všechny funkce přenést, některé implementace vypadají pouze tak, že
funkce neudělá to co by měla a jen vrátí chybu.
O tom se můžete
dočíst v nápovědě libc v menu Help
→ libc reference
(viz obrázek) třeba u funkce fork
. Nápověda k libc
se vám taky bude
při studiu hodit :-).
DJGPP nepodporuje Windows API. Pro vývoj takových aplikací zvolte raději jiný překladač. Můžete sice psát takové programy pomocí balíčku RSXNTDJ, ale nedoporučují to ani tvůrci DJGPP a určitě pro vývoj aplikací pro Windows existují zdarma mnohem lepší překladače (viz přehled překladačů v předchozí kapitole).
Instalace DJGPP
Stažení souborů
Nejdříve si musíte stáhnout z internetu ty soubory, které budete potřebovat.
Začít můžete na domovské stránce DJGPP.
S výběrem vhodných souborů vám hodně pomůže stránka
Zip Picker.
Na této stránce si vyberete FTP Server, odkud chcete soubory stahovat,
v jakém OS budete DJGPP provozovat a co všechno v něm chcete mít. Pro tento
výukový kurz vám bude stačit stáhnout C a C++, ale budete-li se věnovat
programování v DJGPP i poté, doporučuji stáhnout také třeba Assembler, Allegro
(pro hry), Unix Curses Emulator (pro programy využívající
curses – takové grafické rozhraní, co
vypadá jako RHIDE). Také vám doporučuji stáhnout a vyzkoušet RHIDE.
Po odeslání formuláře na stránce Zip Pickeru se dostanete na stránku, kde budete mít odkazy na všechny soubory, které potřebujete stáhnout. Uložte si je do složky, nějaké složky, jejíž cesta nebude obsahovat mezery, a jména adresářů nebudou delší než 8 znaků. Například do složky d:\tmp\. Na téže stránce budete mít také napsáno několik důležitých poznámek a postup instalace (nejdůležitější teď proberu).
Rozbalení souborů
Vytvořte si adresář, kde buďte chtít mít nainstalován DJGPP. Cesta do adresáře nesmí obsahovat mezery, nesmí být v adresáři „/dev“ (to je poznámka pro Linuxovou instalaci) a jména adresářů by neměly být delší než 8 znaků (takže na adresář „Program Files“ zapomeňte). Například můžete vytvořit C:\programy\djgpp.
Spusťte příkazový řádek (přejděte do MS-DOSu). Ve Windows XP v
nabídce Start
→ Spustit...
a zadejte příkaz command
,
nebo novější cmd
.
V okně příkazové řádky zadejte následující příkazy, kterými rozbalíte
soubory do instalačního adresáře.
V programu command můžete klávesnici přepínat mezi
českou (CTRL+ALT+F2) a anglickou (CTRL+ALT+F1). V MS-DOSu to šlo
příkazem keyb cz
a keyb us
.
F:\> c:
rem přesun do instalačního adresáře:
C:\> cd c:\programy\djgpp
rem rozbalení souborů:
C:\PROGRAMY\DJGPP> unzip32 d:\tmp\djdev203.zip
C:\PROGRAMY\DJGPP> unzip32 d:\tmp\faq203b.zip
C:\PROGRAMY\DJGPP> unzip32 d:\tmp\gcc473b.zip
...
Rozbalte všechny soubory, které jste stáhli. Použijte k tomu unzip32, jak je uvedeno v příkladě. Ten si také stáhnete z téže stránky. Uložte jej do složky, do které se odkazuje proměnná prostředí PATH (viz níže) nebo do instalační složky (C:\PROGRAMY\DJGPP).
Pozor! unzip32.exe
nepracuje v 64-bitových Windows!
Soubory můžete rozbalit i pomocí průzkumníka Windows, nebo jakéhokoliv vašeho oblíbeného rozbalovacího programu. Důležité je, abyste zachovali složky uložené v ZIPu.
Při rozbalování se může stát, že některé soubory readme.1st nebo copying.dj budou navzájem přepisovat. Tak je nechte, můžete si je později přečíst ze zazipovaných souborů.
Konfigurace prostředí
Aby vše fungovalo, musíte ještě nastavit proměnné prostředí PATH a DJGPP. Proměnná PATH říká operačnímu systému, kde má hledat spustitelné soubory (tj například gcc.exe, který budeme používat k překladu zdrojového kódu) a DJGPP je proměnná, kterou využívají nástroje DJGPP.
Nastavení těchto dvou proměnných lze dosáhnout dvěma způsoby. Tím prvním je vytvoření dávkového souboru. Jedná se o obyčejný textový soubor s koncovkou BAT, ve kterém jsou následující řádky (Cesty k adresářům změňte dle své potřeby. Neměly by obsahovat mezery ani adresáře s delším jménem než 8 znaků):
@echo off
set PATH=c:\programy\djgpp\bin;%PATH%
set DJGPP=c:\programy\djgpp\djgpp.env
c:\
chdir c:\zdrojaky\c
cmd
První řádek je komentář, druhý vypíná vypisování příkazů na obrazovku (vcelku nepodstatné), třetí a čtvrtý řádek nastavují proměnné PATH a DJGPP, pátý a šestý řádek vás přesune do složky s vašimi zdrojovými kódy a poslední řádek spustí příkazový řádek, ve kterém můžete zadávat příkazy pro překlad zdrojového kódu (viz překlad zdrojového kódu).
Mohly byste také jen spustit příkazový řádek a zapsat příkazy na třetím až šestém řádku, ale dělat to pokaždé, když budete chtít používat DJGPP, by bylo zbytečně pracné :)
Druhou možností je nastavit systémové proměnné pro celý OS.
To se dělalo dříve v
souboru C:\autoexec.bat
. Pokud máte Windows Milénium, NT, 98,
3.11 atd., editujte tento soubor a vložte na jeho konec následující řádky:
set DJGPP=c:\programy\djgpp\djgpp.env
Restartujte počítač a je hotovo.
V případě systému Windows XP se proměnné PATH a DJGPP nastavují přes
ovládací panely. Otevřete si Ovládací panely (z nabídky Start
→
Ovládací panely
), vyberte Výkon a údržba
→ Systém
, záložku Upřesnit
, dále
Proměnné prostředí
a tam upravte proměnnou Path (přidejte na její začátek cestu
c:\programy\djgpp\bin
a středník). Pak vložte novou proměnnou DJGPP, jejíž
hodnota bude c:\programy\djgpp\djgpp.env
.
Pokud jste správce, můžete nastavit systémové proměnné, nebo nastavte uživatelské proměnné (tj. jen pro váš účet).
Podpora dpmi
Budete-li chtít používat DJGPP (i vaše programy přeložené pomocí DJGPP) v systému MS-DOS (nebo DOSBoxu), budete potřebovat podporu DPMI. Jedná se pouze o starý MS-DOS, nikoliv např. příkazovou řádku Windows XP. Dokonce i při běhu programů ve Windows 3.0 není potřeba instalovat DPMI, protože Windows 3.0 jej již obsahují.
DPMI (DOS Protected Mode Interface) je prostředí umožňující programům pracovat v chráněném režimu a využívat tak 32 bitový kód, umožňuje odkládání paměti na disk (bez vědomí programu), čímž se zvětšuje pro program dostupná RAM.
Instalace DPMI je jednoduchá. Stačí stáhnout potřebné soubory, například zde: csdpmi5b.zip. (b v názvu neznamená beta, ale binary). Pak všechny EXE soubory umístit do adresáře, kam se odkazuje proměnná PATH a je to (může to být i C:\programy\DJGPP\BIN).
Překlad zdrojového kódu
Nejprve vytvořte zdrojový kód a umístěte jej do adresáře. Například soubor
hello.c (pro jazyk C) nebo hello.cpp
(pro jazyk C++) do adresáře f:\zdrojaky\c.
Spusťte příkazový řádek. Vyberte menu Start
→ Spustit...
,
zadejte příkaz cmd
.
Pomocí následujících příkazů vstupte do adresáře se zdrojovým kódem. Zdrojový
kód přeložte pomocí příkazu gcc
pro jazyk C nebo
gxx
pro jazyk C++.
C:\> f:
rem přesun do adresáře se zdrojovými kódy:
F:\> cd c:\zdrojaky\c
rem přeložení zdrojového souboru do výsledného programu hello.exe:
F:\ZDROJAKY\C> gcc -o hello.exe hello.c
rem otestování vytvořeného programu:
F:\ZDROJAKY\C> hello.exe
Hello Word
rem ukončení příkazového řádku:
F:\ZDROJAKY\C> exit
Nejdůležitější je řádek gcc -o hello.exe hello.c
.
Pro překladač gcc (gxx), existuje mnoho voleb. V tomto
příkladě stačila volba -o hello.exe
, která
určuje jméno výsledného spustitelného souboru. Následuje název souboru/souborů se
zdrojovým kódem (v příkladě pouze hello.c
). Další užitečnou volbou je
-Wall
. Ta přinutí překladač zobrazovat více varování.
Kódování MS-DOS (reps. příkazové řádky) je jiné než kódování ve Windows. Proto
pro češtinu musíte použít takový editor, který umí kódovat v CP852 a ne v
windows-1250 nebo UTF-8. Takovým editorem může být např. RHIDE nebo program EDIT.
Program EDIT spustíte příkazem edit
. Můžete
mu předat jako parametr název souboru, který chcete otevřít.
Do menu editoru se dostanete pomocí klávesy ALT. Mezi českou a anglickou klávesou můžete přepínat pomocí CTRL+ALT+F1 a CTRL+ALT+F2 (v DOSu). Dále se v editoru můžete pohybovat pomocí kurzorových šipek, tabelátoru, nebo třeba i myši.
Prostředí RHIDE
RHIDE je vývojové prostředí (IDE) k nerozeznání od Borland C++ 4.0, vyvinutého někdy v roce 1993 :-). Instalaci jsem probral v předchozí části této kapitoly – prostě stáhnout a rozbalit :).
Spustíte jej, podobně jako program edit
, v příkazové řádce příkazem
rhide
nebo rhide nazev_souboru.c
.
Několik důvodů, proč RHIDE používat
- jednoduše se ovládá
- edituje soubory v kódování 852, takže nebudou problémy s češtinou
- barevně zvýrazňuje syntaxi
- můžete mít otevřeno více souborů najednou
- zjednodušuje překlad zdrojáku (stačí stisknout jednu klávesu)
- můžete v něm snadno procházet a číst dokumentaci k funkcím C/C++ (pokud jste si ji stáhli a nainstalovali)
- může vám pomoct i třeba při překladu assembleru
Několik tipů pro práci s RHIDE
- program spustíte příkazem
rhide
neborhide nazev_souboru.cpp
- pokud se program po spuštění ve Windows přepne do celoobrazovkového režimu, můžete jej zmenšit klávesovou zkratkou ALT+Enter (a obráceně)
- Do menu programu se dostanete pomocí myši, nebo klávesou ALT+zvýrazněné písmeno v menu
- U spousty příkazů v menu je klávesová zkratka, například CTRL+F9 pro přeložení a spuštění programu
- Po spuštění a skončení programu RHIDE zobrazuje zase zdrojový kód a další okna. Chcete-li vidět obrazovku s výstupem programu, stiskněte ALT+F5. Do RHIDE se vrátíte znovu stiskem kláves ALT+F5.
- V dolním řádku bývá kontextová nápověda k možným klávesovým zkratkám.
- Podívejte se do Help → libc reference
- Pokud najedete kurzorem na název nějaké funkce (třeba printf) a stisknete CTRL+F1, dostanete se k nápovědě této funkce.
- V menu Options → Compilers → Warnings zaškrtněte volbu -Wall
- Okna na obrazovce se dají myší přesouvat (za horní rámeček)
- Když si nevíte rady, zkuste klávesu Enter, tabulátor nebo mezerník. Když nefunguje klepnutí myší, poklepejte :)