###### # ##### ###### ###### # # # # # # # # # # # # # # # # # # # # # #### ###### ###### # # # # # # # # # # # # # # # # ###### ##### ##### # # DJ Delorie Traducido por Gorka Urrutia Este el es fichero README.1ST de la versión 2.02 de DJGPP ************************************************************************* * Este documento contiene información acerca de como obtener, instalar * * y usar DJGPP. Por favor léalo *completamente* antes de pedir ayuda * ************************************************************************* DJGPP es un entorno no propietario para desarrollar software de 32bits (modo protegido) en C/C++ bajo MS-DOS. La página web del DJGPP es: http://www.delorie.com/djgpp/ El estado del proyecto y otras informaciones (documentos online, FAQ, archivos del correo) están disponibles a través de las páginas del DJGPP. Las discusiones sobre DJGPP y preguntas acerca del su uso o características se hacen a través del djgpp news group (publicar en comp.os.msdos.djgpp) y la lista de correo (enviar mensaje a , suscribir a través de ). Mire en la página web para información acerca de las últimas versiones de los paquetes de DJGPP. La información sobre la versión está en el directorio manifest/*.ver dentro de cada fichero zip. Hay otros tutoriales alternativos (generalmente mejores) sobre conseguir, configurar y usar djgpp disponibles en la Red: http://www.delorie.com/djgpp/doc/ LA DISTRIBUCIÓN *************** La distribución DJGPP consta de unos pocos subdirectorios. Cada subdirectorio tiene un directorio llamado 00_index.txt que contiene la descripción de cada fichero en ese directorio. Los ficheros zip con una 'b' al final incluyes los binarios y la documentación on-line. En el momento de escribir este fichero, los distintos paquetes son: FAQ Un pequeño documento que indica qué otros documentos deberías leer (incluyendo la FAQ -preguntas más frecuentes- completa). v2/ unzip386 Un programa de libre distribución para descomprimir archivos (como PKUNZIP). djdev202 DJGPP V2 Kit de desarrollo y Runtime djlsr202 DJGPP V2 Código fuente de las bibliotecas base. djtst202 DJGPP V2 Test Programs (for testing the C library) djcrx202 DJGPP V2 Cross-to-DOS Compiler Support Files (from djlsr/djdev) djtzn202 DJGPP V2 Timezone Files djtzs202 DJGPP V2 Timezone Sources faq*b La FAQ completa en distintos formatos (Info, ASCII, HTML...) faq*s The Texinfo sources of the FAQ and tools to generate all the different formats of the FAQ frfaq* DJGPP FAQ en Francais v2apps/ (distintas aplicaciones hechas por y para DJGPP, como RHIDE y TeX) v2gnu/ (conjunto de programas FSF/GNU -Free Software Foundation- pasados a DJGPP, como gcc o binutils) v2tk/ (varios toolkits para usar con DJGPP, como Allegro o libsocket) v2misc/ csdpmi* CWSDPMI, Charles Sandmann's free DPMI server binaries and docs mlp* ML's Executable File Packer Binaries ("djp") pmode* PMODE stub for djgpp V2 wmemu* WM's 387 emulator binaries for DJGPP V2 (and other miscellaneous things to use with DJGPP) COMENZANDO ********** La información de abajo es lo mínimo que los nuevos usuarios deberían saber para empezar en DJGPP. Por favor lea la documentación DJGPP y la FAQ para más detalles. Se anima a los nuevos usuarios a leer la FAQ entera. (FAQ=Frequently Asked Questions. Es una lista con las preguntas más frecuentes) Qué descargar ------------- En http://www.delorie.com/djgpp/zip-picker.html tiene un formulario que le indica qué ficheros debe descargar. En general, descargue sólo la distribución binaria, la mayoría de la gente no necesita la distribución con el código fuente. Para crear programas C, necesitará djdev202.zip, gcc*b.zip, y bnu*b.zip. Para C++ necesitará también gpp*b.zip. Para leer los manuales en línea, descargue txi*b.zip y ejecute "info". Si no tiene un servidor DPMI instalado, necesitará csdpmi*b.zip. (Windows, QDPMI, 386max, NWDOS, OpenDOS, OS/2, Win/NT y Linux DOSEmu proveen servicios DPMI, así que no necesitará CWSDPMI en esos entornos.) Para más detalles, descargue faq*b.zip (la FAQ completa) y lea el Capítulo 4. Instalación ----------- 1. Cree un directorio para DJGPP, digamos C:\DJGPP . Si tiene la versión 1.x instalada, es mejor borrar todo el contenido de su subdirectorio 'bin/' muévalo a otro directorio (que no esté en su PATH), y borre todo lo demás de esa instalación. (Algunos de los problemas de los que informaron algunos usuarios DJGPP v2 fueron causados por mezclar programas v2 con viejos programas v1.x.) El único programa de v1.x que debería conservar es 'go32.exe'. 2. Descomprima los ficheros zip desde ese directorio, conservando la estructura del directorio. Por ejemplo: pkunzip -d djdev202 o unzip386 djdev202 En Windows 9X, use un programa descompresor que acepte nombres de fichero largos. Las últimas versiones de Unzip de InfoZip y PKUnZip, así como WinZip, aceptan nombres largos. Una forma de asegurarse de que ha conservado los nombres largos es buscar el fichero include/sys/sysmacros.h: si en su lugar el nombre que aparece es sysmacro.h , su programa descompresor NO acepta nombres largos, y tendrá que buscarse otro. 3. Después de descomprimir todos los ficheros zip, apunte la variable de entorno DJGPP al fichero DJGPP.ENV que está en su directorio principal de DJGPP, y añada su subdirectorio BIN a su PATH. Suponiendo que su instalación DJGPP está en C:\DJGPP, ponga estas do líneas en su fichero autoexec.bat (tendrá que reiniciar el ordenador): set DJGPP=C:\DJGPP\DJGPP.ENV set PATH=C:\DJGPP\BIN;%PATH% 4. Ejecute el programa go32-v2.exe sin argumentos: go32-v2 Debería informar acerca de cuánta memoria DPMI y espacio swap (de intercambio) puede usar DJGPP en su ordenador, algo como esto: DPMI memory available: 8020 Kb DPMI swap space available: 39413 Kb (Los números variarán dependiendo de la cantidad de RAM instalada en su sistema, el espacio disponible en disco y el servidor DPMI). Si go32-v2 informa de que hay menos de 4 MBytes de memoria DPMI, lea la sección 3.8 de la FAQ. (Si tiene más de eso, pero quiere un funcionamiento óptimo de sus sistema, léala igualmente). Compilación ----------- GCC es un compilador de línea de comando, que usted invoca desde la línea de comandos del DOS. Para compilar y enlazar un programa C de único fichero, use algo parecido a esto: gcc myfile.c -o myfile.exe -lm El -lm enlaza con la biblioteca lib/libm.a (matemáticas trigonométricas) si se necesita. (La orden de enlace es importante, así que si necesita libm.a, ponga siempre '-lm' al final de la línea de comando). Para compilar un fichero fuente C o C++ en un fichero objeto, use esta línea de comando: gcc -c -Wall myfile.c (for C source) o gcc -c -Wall myfile.cc (for C++ source) Esto genera el fichero objeto myfile.o. La opción '-Wall' activa muchos mensajes útiles que son especialmente beneficiosos para nuevos usuarios de GCC. (Otras extensiones C++, como .cpp, también se aceptan, vea la sección 8.4 de la lista para más detalles). Para enlazar varios ficheros objetos C en un programa ejecutable, use una línea de comando como esta: gcc -o myprog.exe mymain.o mysub1.o mysub2.o Esto genera 'myprog.exe' que puede ser ejecutado desde la línea de comandos del DOS. Para enlazar un programa C++, use gxx en lugar de gcc, de esta forma: gxx -o myprog.exe mymain.o mysub1.o mysub2.o Esto buscará automáticamente las bibliotecas C++, así que no necesitará incluirlas en la línea de comando. También puede combinar los pasos de compilación y enlazado, de esta forma: gcc -Wall -o myprog.exe mymain.c mysub1.c mysub2.c Para más infromación acerca de la lista completa de las opciones de GCC vea la documentación on line de GCC. Para leerla instale el paquete Texinfo (txi*b.zip, vea la sección 'documentos On-line' más abajo) y teclee lo siguiente: info gcc invoking Entorno de Desarrollo (también llamado IDE) ------------------------------------------- Actualmente, DJGPP no viene con un entorno integrado propio. Usted es libre de elegir cualquier editor que pueda ejecutar programas DOS y capturar su salida, para que funcione como IDE. Mucha gente que trabaja con DJGPP usa una versión DOS de GNU Emacs (está disponible en el directorio v2gnu) que puede ser compilado con DJGPP. Emacs es un potente editor (por ejemplo tiene incorporado un visor de Info, así que puede ver la documentación DJGPP sin salir del editor), pero muchos otros editores libres pueden servir como IDE. La única tarea que estos editores (incluido Emacs) no pueden hacer es ejecutar un depurador en una sesión a pantalla completa. Un editor específico para DJGPP llamado RHIDE ha sido recientemente publicado y está ahora disponible para los usuarios DJGPP. Tiene una interfaz similar al Turbo C, auto indentation, generación automática de los Makefiles, llamada automática al compilador DJGPP, y fácil acceso a la documentación DJGPP. RHIDE también incorpora un depurador integrado. Dado que RHIDE es muy reciente se están haciendo revisiones y arreglos todavía; visite http://www.tu-chemnitz.de/~sho/rho/rhide.html para actualizaciones. Depuración ---------- Para depurar un programa, primero debe comilar su código fuente con la opción '-g': gcc -c -Wall -g mymain.c gcc -c -Wall -g mysub1.c gcc -c -Wall -g mysub2.c y luego enlace con la opción '-g' también: gcc -g -o myprog.exe mymain.o mysub1.o mysub2.o (Note that with v2.01 of DJGPP, it is no longer necessary to compile to a raw COFF output by omitting the `.exe' from the filename in order to debug programs. The new v2.01 debuggers are capable of reading an executable as well as the raw COFF. If you don't understand this, don't worry about it.) Luego ejecute su programa con el depurador: fsdb myprog.exe o gdb myprog.exe o edebug32 myprog.exe (Necesitará gdb*b.zip si quiere depurar con GDB). FSDB tiene su propia pantalla de ayuda a la que se accede pulsando F1. GDB viene con documentos 'Info' (ver más abajo) que se pueden leer con info.exe. Edebug32 es un depurador poco usado; escriba h para obtener ayuda. Documentación en línea ---------------------- La mayor parte de la documentación On-line está organizada en un formato hipertexto especial usado por el proyecto GNU. Cada paquete viene con su documentación que son los ficheros con extensión .inf (el Readme.1st dice .iNN) y que se deben descomprimir en el subdirectorio info/ de su directorio DJGPP. Para ver estos documentos, instale el fichero txi*b.zip, y ejecute info.exe. Si no sabe cómo usar Info, pulse '?'. Compatibilidad con V2.00 ------------------------ Si está usted actualizando desde la versión 2.00 de DJGPP, debería reinstalar completamente todos los paquetes que necesite usar. Dada la diferente forma que tienen las versiones 2.01 y posteriores de manejar los nombres largos, mezclar programas V2.00 con programas de versiones posteriores puede producir problemas difíciles de detectar. Lea la sección 16.6 de la FAQ para más información. Compatibilidad con V1.x ----------------------- Existing binaries compiled under DJGPP V1.x can be used for applications for which there is no v2.0 version. V1 programs cannot run V2 programs (but v2 programs *can* run v1 programs), so don't try, say, using v1.x Make to run v2.0 compiler. --- COPYRIGHT --- DJGPP V2 is Copyright (C) 1989-1998 by DJ Delorie. Some parts of libc.a are Copyright (C) Regents of the University of California at Berkeley. GNU software (gcc, make, libg++, etc) is Copyright by the Free Software Foundation. DJGPP V2's copyright allows it to be used to produce commercial applications. However, if you include code or libraries that are not part of djgpp (like gnu's libg++) then you must comply with their copyrights. See Chapter 19 of the FAQ for more details. There was a discussion a while ago on the DJGPP news group about the copyright of some of libc's functions. This copyright required that you mentioned the "University of California" in your distribution even if it only consisted of binaries, i.e. a compiled program. So if you compile a program with djgpp, and want to distribute it, you better follow this copyright: /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that: (1) source distributions retain this entire copyright * notice and comment, and (2) distributions including binaries display * the following acknowledgement: ``This product includes software * developed by the University of California, Berkeley and its contributors'' * in the documentation or other materials provided with the distribution * and in all advertising materials mentioning features or use of this * software. Neither the name of the University nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ The functions and files in libc that have this copyright are listed here: from libc/ansi/time/ctime.c: asctime ctime gmtime localtime mktime tzset tzsetwall from libc/compat/stdlib/random.c: initstate random setstate srandom ============================================================================== Enjoy! DJ Delorie dj@delorie.com http://www.delorie.com/ Traducido por: Gorka Urrutia. gorkau@geocities.com Documentación DJGPP en castellano: http://www.geocities.com/g_urrutia/djgpp-cas.html