DJGPP FAQ

La versione originale in inglese e` diponibile on line http://www.delorie.com/djgpp/v2faq/faq.html, altre fonti di informazione sono DJGPP Knowledge Base e le pagine di Brennan Underwood.

  1. Come installare djgpp ?
  2. Come compilare i programmi ?
  3. Su quali CPU e` possibile utilizzare djgpp ?
  4. Su quali sistemi operativi ?
  5. Perche` djgpp e` cosi` lento ?
  6. Il mio programma non funziona con djgpp !
  7. A chi chiedere maggiori informazioni ?

Come installare djgpp ?
Prima create una directory per djgpp, ad esempio c:\djgpp, poi scompattate il file djdev201.zip col comando `pkunzip -d djdev201.zip' Proseguite poi con tutti gli altri file zip che avete scaricato. Aggiungete poi nel file autoexec.bat i comandi

set DJGPP=C:/DJGPP/DJGPP.ENV'
set PATH=C:\DJGPP\BIN;%PATH%

Dopo aver riavviato provate ad eseguire `go32-v2' che vi dovrebbe informare sulla quantita` di memoria disponibile.

Ritorna

Come compilare i programmi ?
Per compilare i programmi bisogna utilizzare `gcc' che riconosce il compilatore da utilizzare a seconda dell'estensione del nome del file che deve essere `.c' per i file C, `.cc' o `.cpp' o `.cxx' per i file C++ e `.m' per objective C. Per compilare un file sorgente in binario utilizzare il comando `gcc miofile.c -o miofile.o' dove `miofile.o' rappresenta il file di output binario (l'equivalente dei file .obj prodotti da altri compilatori, con cui non e` pero` compatibile). Per produrre l'eseguibile `gcc miofile.c -o mioprg.exe'.
Se non viene indicata l'opzione `-o' il nome del file di output sara` `a.out'. Il programma gcc e` abbastanza intelligente, percio` e` possibile specificare nomi di file multipli, ognuno con un diverso formato, ad esempio `gcc main.cc file.o -o test.exe'.
Se invece avete l'IDE rhide premete F9 :)

Ritorna

Su quali CPU e` possibile utilizzare djgpp ?
La cpu minima richiesta e` un 386. djgpp e` un programma a 32 bit, e non puo` essere eseguito su 286 o 8086. Lo spazio minimo occupato su disco e` di 15Mb, ma puo` anche arrivare a piu` di 30Mb. Almeno 2.5Mb di memoria estesa libera per tempi di compilazione accettabili. Ad ogni modo se avete pazienza il compilatore lavora anche su 386 con 2Mb.

Ritorna

Su quali sistemi operativi ?
I sistemi che possono eseguire con successo djgpp sono : DOS, Windows 3.x, OS/2, Windows95, Windows NT, OpenDOS, Novell NWDOS e Linux DOSemu.

Per il sistema operativo DOS e` necessario avere il dos extender cwsdpmi o equivalente.

Sotto Windows 3.x ci sono diverse limitazioni derivanti da windows.

Alcune versioni di OS/2 necessitano di alcuni accorgimenti, vedi la faq ufficiale.

Su Windows 95/NT a volte compilando grossi progetti con make la dos box viene terminata a causa di un bug nei sistemi operativi.

Con OpenDOS/NWDOS bisogna disabilitare il DPMI di default, ed usare cwsdpmi

Ritorna

Perche` djgpp e` cosi` lento ?
Molti parametri possono influenzare la velocita` dei compilazione, e le prestazioni dipendono soprattutto da quanta RAM e` disponibile.

Per sistemi con 4Mb o meno non utilizzare nessun gestore di memoria, e una piccola (256Kb) disk cache software se si hanno almeno 4Mb.

Per sistemi con 5/8Mb di memoria, utilizzare EMM386 o QEMM386, ed utilizzare una cache disco di 1Mb.

Per sistemi con piu` di 8Mb utilizzare una cache disco ancora maggiore, e fare in modo che la variabile di ambiente TMPDIR punti ad un ramdisk.

Se avete almeno 4Mb invece potreste avere incrementi nelle prestazioni lavorando con windows 3.11 con accesso a 32 bit al filesystem. Con piu` ram a disposizione ed una cpu almeno 486DX2 66Mhz potreste anche provare Windows 95 in modo da utilizzare i nomi lunghi. Con configurazioni piu` potenti lavorare sotto windows aumenta la velocita`, a patto di non avere altri task.

Ritorna

Il mio programma non funziona con djgpp !
La maggioranza dei programmi DOS a 16 bit non funziona con djgpp se si hanno istruzioni che acceddono ad indirizzi di memoria assoluti, come ad esempio accessi diretti alla memoria video.
Altri problemi potrebbero derivare dall'utilzzo di alcune caratteristiche non standard, come ad esempio i vari `asm' per inserire istruzioni assembler nel file C. Djgpp consente l'utilizzo di `asm' ma con una sintassi totalmente differente, piu` complessa (e orribile a mio parere) ma che fornisce ottime possibilita` di ottimizzazione.
Non e` inoltre possibile utilizzare libreria a 16 bit di cui non si dispone del sorgente, vista anche l'incompatibilita` col formato `.LIB'.
Infine ricordate che le variabili `int' sono a 32 bit con djgpp.

Ritorna

A chi chiedere maggiori informazioni ?
Per maggiori informazioni, oltre a consultare le faq complete (disponibili anche in francese...) provate sempre il comando `info' per sapere come utilizzare al meglio djgpp. Ad esempio per avere informazioni sulle opzioni del programma gcc, utilizzare `info gcc'. Se avere l'IDE rhide premete F1, poi CTRL-D. Per questioni piu` specifiche magari riguardanti una libreria provate a scrivere sul news group comp.os.msdos.djgpp. E` anche disponibile una mailing list, per iscriversi basta mandare un messaggio a listserv@delorie.com con il messaggio `subscribe vostro@indirizzo djgpp'. Per informazioni piu` dettagliate sulle mailing lists http://www.delorie.com/mailing-lists/subscribe.html
Se proprio non conoscete l'inglese provate su qualche news group italiano, come it.comp.lang.c o it.comp.lang.c++ o al mio indirizzo.
Come esempi di programmazione, oltre ad una valanga di sorgenti (ad esempio la libreria allegro) potete cercare il file djtut*.zip che contiene alcune informazioni per chi inizia ad usare djgpp.

Ritorna