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í
Prostředí RHIDE

Prostředí RHIDE

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 Helplibc 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.

Příkazová řádka ve Windows XP

Příkazová řádka ve Windows XP

Spusťte příkazový řádek (přejděte do MS-DOSu). Ve Windows XP v nabídce StartSpustit... 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.


rem přesun na disk c:
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ů):

rem soubor djgpp.bat
@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é :)

V instalačním adresáři DJGPP naleznete adresář FAQ, nahlédněte do něj. Dočtete se tam vše potřebné, co jste chtěli vědět o DJGPP ale báli jste se zeptat :). FAQ na internetu.

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 PATH=c:\programy\djgpp\bin;%PATH%
set DJGPP=c:\programy\djgpp\djgpp.env

Restartujte počítač a je hotovo.

úprava systémových proměnných

Úprava systémových proměnných
ve Windows XP

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 StartOvládací panely), vyberte Výkon a údržbaSysté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

Překlad pomocí DJGPP

Použití DJGPP v příkazové řádce

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 StartSpustit..., 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++.

rem přesun na disk f:
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í.

editor EDIT

editor EDIT

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.

F:\ZDROJAKY\C> edit hello.c

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

Prostředí RHIDE

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 nebo rhide 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 :)
Komentář Hlášení chyby
Created: 13.9.2008
Last updated: 25.8.2017
Tato stánka používá ke svému běhu cookies, díky kterým je možné monitorovat, co tu provádíte (ne že bych to bez cookies nezvládl). Také vás tu bude špehovat google analytics. Jestli si myslíte, že je to problém, vypněte si cookies ve vašem prohlížeči, nebo odejděte a už se nevracejte :-). Prohlížením tohoto webu souhlasíte s používáním cookies. Dozvědět se více..