Ficher README.1ST de DJGPP Version 2.01 [Avertissement: DJ Delorie, l'auteur de la version originale de ce document (et de DJGPP), n'est nullement responsable des erreurs de traduction, ou du retard dans la mise a jour de ce document. Si cette version francaise vous pose probleme, envoyez vos remarques/critiques a Francois Charton ] DJGPP v2.01 est un ensemble d'applicatifs gratuits permettant de developper des programmes C/C++ en mode protege 32 bits sous MS-DOS. L'etat d'avancement du projet et diverses informations (documentation en ligne, FAQ, archives de la messagerie) sont disponibles sur le site web de djgpp, a l'adresse http://www.delorie.com/. Tous commentaires sur DJGPP et questions sur son utilisation et ses fonctionnalites peuvent etre envoyes au newsgroup comp.os.msdos.djgpp ou a la liste de diffusion , (pour vous y abonner, envoyez un message a ). Des informations sur les dernieres versions des applicatifs de DJGPP sont disponibles sur le site web. Dans chaque archive .zip, le numero de version est dans le fichier manifest/*.ver, et le contenu dans manifest/*.mft. Un autre manuel, plus complet (et plus long), d'introduction a DJGPP a ete ecrit par An et peut etre telecharge par ftp anonyme a x2ftp.oulu.fi. Il se trouve dans le repertoire /pub/msdos/programming/djgpp2, et son nom est djtut-bm.zip. Vous pouvez egalement le consulter en ligne a l'adresse Web suivante: http://remus.rutgers.edu/~avly/djgpp.html LES PROGRAMMES ************** Les fichiers dont le nom finit par 'b' contiennent les programmes et leur documentation. Au moment ou ce document a ete ecrit, les applicatifs disponibles etaient: FAQ Un petit fichier indiquant les documents que vous devriez lire (en particulier la "vraie" FAQ). v2/ unzip386 Decompacteur (comme PKUNZIP) librement accessible djdev201 Executables et kit de developpement de DJGPP V2 djlsr201 Sources des librairies de DJGPP V2 djtst201 Programmes de test djcrx201 Compilateur croise, pour produire des programmes DOS depuis un autre systeme faq210b La FAQ complete sous divers formats (Info, ASCII, HTML...) faq210s Sources en Texinfo de la FAQ, et outils pour la traduire dans differents formats. frfaq21b Traduction francaise de la FAQ v2.10, version texte (Info, ASCII) frfaq21s Traduction francaise de la FAQ v2.10, source Texinfo v2apps/ rhide14b Environnement de developpement integre pour DJGPP v2 rhide14s Sources de RHIDE v2gnu/ bnu281b GNU binutils 2.8.1 pour DJGPP V2 bnu281s Sources de GNU binutils 2.8.1 bsh1147b GNU bash 1.14.7 pour DJGPP V2 bsh1147s Sources de GNU bash 1.14.7 bsn125b GNU bison 1.25 pour DJGPP V2 bsn125s Sources de GNU bison 1.25 dif271b GNU diffutils 2.7.1 pour DJGPP V2 dif271s Sources de GNU diffutils 2.7.1 em1934b GNU emacs 19.34: Executables pour DJGPP v2 em1934l? GNU emacs 19.34: Sources Elisp (3 fichiers) em1934r? GNU emacs 19.34: Environnement d'execution (3 fichiers) em1934s? GNU emacs 19.34: Sources (3 fichiers) fil316b GNU fileutils 3.16 pour DJGPP v2 fil316s Sources de GNU fileutils 3.16 find41b GNU findutils 4.1 pour DJGPP V2 find41s Sources de GNU findutils 4.1 flx254b GNU Flex 2.5.4 pour DJGPP V2 flx254s Sources de GNU Flex 2.5.4 g770519b GNU Fortran77 0.5.19 pour DJGPP V2 g770519s Sources de GNU Fortran77 0.5.19 gcc280b GNU GCC 2.8.0 pour DJGPP V2 gcc280s Sources de GNU GCC 2.8.0 gdb416b GNU Debugger 4.16 pour DJGPP V2 gdb416s Sources de GNU Debugger 4.16 gdbm173b GDBM 1.7.3, executables pour DJGPP V2 gdbm173s Sources de GDBM 1.7.3 gpc20b GNU Pascal 2.0, executables pour DJGPP V2 gpc20s Sources de GNU Pascal 2.0 gpp280b GNU G++ 2.8.0 pour DJGPP V2 (sans les librairies) gpt112b GNU Pascal avec extensions Turbo Pascal grep21b GNU grep 2.1 pour DJGPP V2 grep21s Sources de GNU grep 2.1 gwk303b GNU awk 3.03 pour DJGPP V2 gwk303s Sources de GNU awk 3.03 gzp124b GNU gzip 1.2.4 pour DJGPP V2 gzp124s Sources de GNU gzip 1.2.4 isp3120b GNU ispell 3.1.20 pour DJGPP V2 isp3120s Sources de GNU ispell 3.1.20 lgpp280b GNU libg++ 2.8.0 pour DJGPP V2 lgpp280s Sources de GNU libg++ 2.8.0 lss332b GNU less 3.22, executables pour DJGPP v2 lss332s Sources de GNU less 3.22 mak3761b GNU Make 3.76.1 pour DJGPP V2 mak3761s Sources de GNU Make 3.76.1 objc280b GNU ObjC 2.8.0 pour DJGPP V2 pat25b GNU patch 2.5 pour DJGPP V2 pat25s Sources de GNU patch 2.5 rcs5713b GNU rcs 5.7p113 pour DJGPP v2 rcs5713s Sources de GNU rcs 5.7p113 sed118b GNU sed 1.18 pour DJGPP V2 sed118s Sources de GNU sed 1.18 shl112b GNU sh-utils 1.12 pour DJGPP V2 shl112s Sources de GNU sh-utils 1.12 txi390b GNU texinfo 3.9 pour DJGPP V2 txi390s Sources de GNU texinfo 3.9 txt119b GNU textutils 1.19 pour DJGPP V2 txt119s Sources de GNU textutils 1.19 v2tk/ allegro Sources d'Allegro 3.0 - librairies de programmation de jeux bccgrx20 Convertisseur graphique Borland/GRX pour DJGPP V2 bcsio20 Communications sur le port serie, par Bill Currie djgpptsr Exemples d'ecriture de programmes residents sous DJGPP gccsjis Patch pour GCC, pour compiler les sources de JIS (beta) grx20 GRX 2.0 Librairie Graphique pour DJGPP V2 jkthpack Threads pour DOS, par JK jptui37d JPTUI, Interface utilisateur texte libkb100 Interface clavier bas niveau portable lmb051b JIS librairie multi-octets (beta) lmb051s Source de JIS, librairie multi-octets (beta) lw03b JIS caracteres grand formats (beta) lw03s Source de JIS caracteres grands formats (beta) mkkbd3 Exemples de gestionnaire clavier mttws121 Systeme de fenetrage, par Malcolm Taylor pdc22 Librairie "curses" domaine public rsxdj131 RSX pour DJGPP sw21_dj1 Systeme de fenetrage SWORD, executables pour DJGPP V1 sw21_dj2 Systeme de fenetrage SWORD, executables pour DJGPP V2 sw21_doc Systeme de fenetrage SWORD, documentation sw21_p1 Systeme de fenetrage SWORD, Partie 1 sw21_p2 Systeme de fenetrage SWORD, Partie 2 sw21_tc Systeme de fenetrage SWORD, Executables pour Turbo C v2misc/ csdpmi4b CWSDPMI, executables et documentation du serveur DPMI gratuit de Charles Sandmann csdpmi4s Sources de CWSDPMI infng100 Conversion d'INFO vers Norton Guides mlp107b Compresseur de fichiers executables ML mlp107s Sources de ML pmode12b PMODE, amorce pour djgpp V2 pmode12s Source de PMODE wmemu2b Emulateur 387 de WM, executables pour DJGPP V2 wmemu2s Emulateur 387 de WM, sources pour DJGPP V2 PREMIERS PAS ************ Les informations donnees ici sont le minimum qu'un utilisateur novice doit connaitre pour demarrer DJGPP. Pour avoir davantage de details, veuillez lire la documentation et la FAQ de DJGPP. Il est souhaitable que tout nouvel utilisateur lise la FAQ en entier. Que telecharger --------------- En general, ne telechargez que les executables; peu de gens ont besoin des sources. Pour compiler des programmes C, vous devez avoir djdev201.zip, gcc280b.zip, et bnu281b.zip. Pour le C++, il vous faudra egalement gpp280b.zip et lgpp280b.zip. Pour lire les manuels, telechargez txi390b.zip et executez "info". Si aucun serveur DPMI n'est installe sur votre machine, vous devez avoir csdpmi4b.zip. (Windows, QDPMI, 386Max, NWDOS, OpenDOS, OS/2, Win/NT et DOSEmu sous Linux contiennent un serveur DPMI. Vous n'avez donc pas besoin de CWSDPMI dans ces environnements). Pour plus d'informations, telechargez faq210b.zip (ou en francais frfaq21b.zip), et lisez le chapitre 4 de la FAQ. Installation ------------ 1. Creez un repertoire pour DJGPP, par exemple C:\DJGPP. Si vous avez deja installe la version 1.x , il vaut mieux effacer le contenu du sous repertoire 'bin/', ou le recopier dans un autre repertoire (qui ne soit pas sur votre PATH), et detruire tout le reste de cette version. (Certains des problemes rencontres par les utilisateurs de DJGPP v2 viennent du melange des deux versions v1.x et v2). Le seul programme de la version 1.x que vous devriez conserver est 'go32.exe'. 2. Decompactez les fichiers zip a partir de ce repertoire, en veillant a preserver l'arborescence des sous repertoires. Par exemple : pkunzip -d gcc280b ou unzip386 gcc280b 3. Apres avoir decompacte tous les fichiers zippes, faites pointer la variable d'environnement DJGPP sur le fichier DJGPP.ENV, dans le repertoire de base de DJGPP, et ajoutez le sous repertoire BIN a votre PATH. Par exemple, si votre installation de DJGPP s'est faite a partir de C:\DJGPP, vous ajouterez au fichier AUTOEXEC.BAT les deux lignes : set DJGPP=C:\DJGPP\DJGPP.ENV set PATH=C:\DJGPP\BIN;%PATH% 4. Executez le programme go32-v2.exe sans arguments go32-v2 Il doit alors vous annoncer combien de memoire et d'espace d'echange DPMI DJGPP disposera sur votre systeme, par exemple : DPMI memory available: 8020 Kb DPMI swap space available: 39413 Kb (Ces nombres dependent de la taille de la RAM de votre systeme, de l'espace disque disponible, et du serveur DPMI.) Si go32-v2 annonce moins de 4 MOctets de memoire DPMI, lisez le paragraphe 3.8 de la FAQ. (Meme si vous disposez de davantage de memoire, lisez le si vous voulez optimiser les performances de DJGPP sur votre systeme). Compilation ----------- GCC est un compilateur en ligne de commande, que vous appelez depuis le DOS. Pour compiler et relier un programme C constitue d'un seul fichier, vous taperez une commande comme : gcc monfich.c -o monfich.exe -lm L'option -lm relie la librairie lib/libm.a (fonctions trigonometriques) si vous en avez besoin. (Lors de la reliure, l'ordre des operations est important, aussi, tapez toujours '-lm' a la fin de la ligne de commande.) Pour compiler un fichier C ou C++ en fichier objet, tapez : gcc -c -Wall monfich.c (programme C) ou gcc -c -Wall monfich.cc (programme C++) Ceci cree le fichier objet monfich.o. L'option '-Wall' active toutes sortes de messages d'avertissement, qui peuvent etre d'une grande utilite aux utilisateurs novices de GCC. (D'autre extensions de fichiers C++, comme .cpp, sont egalement acceptees, pour plus d'information, lire la section 8.4 de la FAQ). Pour relier plusieurs fichiers objets C en un programme executable, tapez: gcc -o monprog.exe monmain.o monsub1.o monsub2.o -lm Ceci cree 'monprog.exe' qui peut etre execute a l'invite du DOS. Pour relier un programme C++, utilisez gxx au lieu de gcc: gxx -o monprog.exe monmain.o monsub1.o monsub2.o -lm Il utilisera automatiquement les librairies C++, ce vous epargne de les faire figurer sur la ligne de commande. Vous pouvez egalement combiner compilation et reliure : gcc -Wall -o monprog.exe monmain.c monsub1.c monsub2.c -lm Les innombrables options de GCC sont decrites dans sa documentation en ligne. Pour y avoir acces, installez l'applicatif Texinfo (texi390b.zip, voir le paragraphe "documentation en ligne" ci dessous) et tapez : info gcc invoking Environnement de developpement (EDI) ------------------------------------ DJGPP n'a pas actuellement d'environnement de developpement integre. Vous pouvez utiliser comme EDI n'importe quel editeur capable de lancer des programmes DOS et d'en recevoir le resultat. De nombreux utilisateurs de DJGPP utilisent un portage pour DOS de GNU Emacs (disponible au meme endroit que DJGPP) qui peut etre compile par DJGPP. Emacs est un editeur tres puissant (il dispose par exemple d'un lecteur Info integre, ce qui vous permet de lire la documentation DJGPP sans quitter l'editeur), mais de nombreux autres editeurs gratuits peuvent servir d'EDI. La seule chose que ces editeurs (y compris Emacs) ne puissent faire est d'utiliser un debogueur lors d'une session plein-ecran. Un EDI specifique a DJGPP, appele RHIDE, peut etre utilise. Il presente une interface similaire a celle de Turbo C, et permet l'indentation automatique, la mise en evidence de la syntaxe, l'appel automatique du compilateur DJGPP, la creation automatique de fichiers Makefile, et un acces simple a la documentation en ligne de DJGPP. RHIDE permet aussi le debogage, en utilisant les fonctionnalites du debogueur GNU (gdb). RHIDE etant tres recent, des corrections et revisions lui sont regulierement apportees. Consultez http:/www.tu-chemnitz.de/~sho/rho/rhide.html pour les dernieres versions. Debogage -------- Pour deboguer un programme, vous devez d'abord le compiler en utilisant l'option -g : gcc -c -Wall -g monmain.c gcc -c -Wall -g monsub1.c gcc -c -Wall -g monsub2.c puis le relier avec l'option '-g': gcc -g -o monprog.exe monmain.o monsub1.o monsub2.o (Depuis la version 2.01 de DJGPP, il n'est plus necessaire de produire un fichier COFF brut en ne mettant pas le suffixe '.exe' au nom de fichier pour pouvoir deboguer un programme. Les nouvelles versions du debogueur savent lire l'executable comme le fichier COFF. Si vous ne comprenez pas ce paragraphe, ce n'est pas grave). Puis executez votre programme avec le debogueur : fsdb monprog.exe ou gdb monprog.exe ou edebug32 monprog.exe (Vous devez telecharger gdb416b.zip si vous voulez deboguer avec GBD.) FSDB a une aide en ligne; appuyez sur F1 pour la lire. GDB a une documentation au format Info (voir ci dessous) qui peut etre lue au moyen d'Info.exe. Edebug32 est un debogueur rarement utilise; tapez '-h' pour lire l'aide. Documentation en ligne ---------------------- Le plupart des documentations sont ecrites dans un format hypertexte special utilise par le projet GNU. Chaque applicatif contient sa propre documentation sous la forme de fichiers ayant l'extension .iNN, et qui se decompactent dans le sous repertoire info/ de votre repertoire principal DJGPP. Pour consulter ces documentations, telechargez et decompactez le fichier txi390b.zip, et executez info.exe. Si vous ne savez pas comment utiliser Info, tapez '?'. Compatibilite avec la version 2.0 --------------------------------- Si vous passez de la version 2.00 de DJGPP a la version 2.01, vous devriez reinstaller en totalite les applicatifs que vous utilisez. Comme la version 2.01 utilise une methode entirement nouvelle de gestion des longues lignes de commande (et des noms de fichiers longs sous Win95), melanger des programmes v2.00 et v2.01 peut faire apparaitre des erreurs subtiles , difficiles a deboguer. Lisez le paragraphe 16.6 de la FAQ pour plus d'informations. Compatibilite avec la version 1.x --------------------------------- Les programmes compiles avec DJGPP V1.x peuvent etre utilises pour des applicatifs qui n'ont pas ete portes sous DJGPP v2.0. Les programmes version 1 ne peuvent executer des programmes de la version 2.0 (mais les programmes v2 *peuvent* executer des programmes v1), n'essayez pas, par exemple, d'utiliser Make v1.x avec le compilateur v2.0. --- COPYRIGHT --- DJGPP V2 Copyright (C) 1995, DJ Delorie. Certaines parties de libc.a sont Copyright (C) Regents of the University of California at Berkeley. Les programmes GNU (gcc,make,libg++,etc...) sont Copyright Free Software Foundation. Le copyright de la version 2 de DJGPP vous autorise a l'utiliser pour produire des applications commerciales. Cependant, si vous utilisez du code ou des librairies qui n'appartiennent pas a djgpp (par exemple la librairies libg++ de gnu), alors vous devez vous conformer aux dispositions de leur copyright. Lisez le chapitre 19 de la FAQ pour davantage de details. Amusez vous bien! DJ Delorie dj@delorie.com http://www.delorie.com/ [traduction : Francois Charton deef@pobox.oleane.com]