Instalace DJGPP


Jednotlivé balíky ze sekcí "Základní komponenty DJGPP" a "GNU vývojové nástroje" nainstalujete z CD do jednoho adresáře. Potom je jeden po druhém rozbalíte programem unzip32:


      unzip32 (jméno souboru)

Podobně můžete podle uvážení nainstalovat i ostatní balíky vyjma programů vim, upx, allegro, masm, freebb a a2i, které nepochází přímo z ditribuce DJGPP a proto se nerozbalí do správných podadresářů. Ty můžete rozbalit podobně, jako normální programy do jakéhokoliv adresáře chcete. Pro kompilaci balíku allegro a mnoha dalších programů budete potřebovat mít nainstalované programy, které jsou označny jako doporučené.

Nakonec musíte přidat podadresář bin na cestu a nastavit proměnnou DJGPP tak, aby ukazovala na soubor djgpp.env. Stačí, když přidáte nakonec autoexec.bat následující řádky:


SET DJGPP=(cesta k adresáři)\djgpp.env
SET PATH=(cesta k adresáři)\BIN;%PATH%

Potom rebootujte, zkontrolujte, jestli je environment v pořádku a můžete napsat jednoduchý program v C:


#include <stdio.h>
int main(void)
{
	printf("Nazdar světe!\n");
	return 0;
}

a zkusit kompilaci:


      gcc hello.c

Pokud překlad proběhne, vytvoří se soubor a.exe. Ten potom můžete otestovat. Pokud něco nefunguje, jsou následující možnosti:

Překladač píše, že nenalezl DPMI a že chce cwsdpmi.
To asi nemáte dobře nastavenou cestu do bin adresáře, nebo tam není cwsdpmi.exe
Překladač něco nenalezne
něco chybí, nebo nejsou správně nastavené proměnné v autoexec.bat.
Překladač spadne.
Tady jsou následující možnosti:
  • Na disku z DJGPP už není místo na dočasný soubor
  • Málo paměti. Překladač potřebuje víc než 4MB. Velikost virtuální paměti můžete zjistit pomocí programu go32-v2. Pokud je virtuální paměti méně, nastavte cwsdpmi pomocí cwsparam tak, aby swapovalo na volnější disk (standardně se swapuje na c:), nebo přebootujte do konfigurace bez DPMI, pokud nějaké DPMI běží.
  • Zkuste čistý himem.sys
  • Vir - DJGPP .exe soubory jsou velmi citlivé na viry a jakákoliv nákaza je zničí. Nepomůže většinou ani odstranění viru.
Make nefunguje
Často se stane, že na cestě je make z jiného C (například Borland C) a to potom většinou nefunguje, ujistěte se, že první na cestě je make z balíku mak375b.zip
Něco jiného,
Tady si musíte poradit sami, nebo se obrátit na mailing list djgpp@delorie.com.

Ještě pár tipů na konfiguraci:

Konfigurace je v souboru djgpp.env v hlavním adresáři s DJGPP. Je dobré přesměrovat dočasný adresář tam, kde máte ostatní soubory. Také si můžete udělat konfiguraci s co nejvíce volnou pamětí, nějakou cache a CWSDPMI spuštěným jako resident (cwsdpmi /r). Pomůže také udělat tmp adresář na ramdisku. Místo ušetříte, když zabalíte celý podadresář bin pomocí UPX. Zpomalení se bát nemusíte, protože UPX rozbalí 10MB do sekundy a to je pravděpodobně více, než rychlost Vašeho disku. Když je překlad pomalý, pomůže zvětšení transfer bufferu u ld.exe pomocí programu stubedit. To samé urychlí i ostatní fáze kompilace - cc1, cpp a as. Občas překladači C++ a C dojde zásobník, potom je třeba jej pomocí programy stubedit zvětšit (u cc1, cc1plus a cc2). Je lepší používat CWSDPMI místo jiných DPMI serverů, protože potom programy detekují víc problémů s pamětí. Také doporučuji přečíst FAQ.