DJGPP Readme.1st (v2.01)



Contenido:


Donde conseguir DJGPP

En Internet:

Puedes encontrar el DJGPP en:

http://www.delorie.com/djgpp/

Tienen un apartado en el que te indican que ficheros debes bajarte segun lo que quieras hacer. Por ejemplo, si solo quieres compilar programas de C, no necesitas los ficheros relacionados con C++.

Ficheros incluidos en la distribucion

Los ficheros con una 'b' al final son los binarios (los que contienen los programas compilados) y los que tienen una 's' son los codigos fuente. Lo mas seguro es que solo quieras los binarios.

Ver lista de ficheros

Ficheros necesarios para empezar

Para compilar programas en C:djdev201.zip
gcc2721b.zip
bnu27b.zip
v2/
v2gnu/
v2gnu/
Si tambien quieres compilar C++:gpp2721b.zip
lgp271b.zip
v2gnu/
v2gnu/
Manuales (ejecutar con info):txi390b.zipv2gnu/

Los directorios que indico son los que se indican en el fichrero readme.1st que venia en DJGPP, pero cuando yo lo cogi estaban en v2apps. Asi que si no lo encuentras en un directorio no te desesperes y busca en los otros. Otra cosa importante es coger los que acaban en 'b' (binaries), que son los programas ya compilados. Si coges los que tienen una 's' (source) tendras que compilarlos tu mismo.

También puede resultar interesante bajarse mak375b.zip donde está el GNU Make. Algunos programas tienen varios ficheros fuente y en vez de tener que compilarlos uno a uno se usa el programa make.

Si estas usando Windows, QDPMI, 386Max, NWDOS, OpenDOS, OS/2, Win/NT y Linux DOSEmu ya tienes todo lo necesario para empezar. Si usas MS-Dos necesitaras un servidor DPMI. Si no sabes lo que es no te preocupes, basta con tenerlo instalado. Para instalar un DPMI coge el fichero csdpmi3b.zip.

Para mas informacion descargate tambien el fichero faq210b.zip (la FAQ completa) y lee el capitulo 4.

Como instalar DJGPP (Instalacion basica)

Lo siguiente es lo minimo que los nuevos usuarios deberian saber para manejar DJGPP.

1.- Crea un directorio donde instalar DJGPP, por ejemplo C:\DJGPP. Si tienes la version 1.x instalada, es mejor borrar los contenidos de su directorio 'bin/' o muevelo a otro directorio (que no este en tu PATH), y borra todo lo demas de esa instalacion. (Algunos de los problemas que tuvieron usuarios de DJGPP v2 fueron causados por mezclar programas de la v2 con la v1.x). El unico programa v1.x que se deberia conservar es el go32.exe.

2.- Descomprime los ficheros zip en ese directorio, conservando la estructura de directorio. Por ejemplo:

	pkunzip -d gcc2721b
o:
	unzip386 gcc2721b

Si usas winzip marca la casilla 'use folder name' para que conserve la estructura de directorios.

3.- Despues de descomprimir todos los zip que te interesan, dale a la variable de entorno DJGPP el valor DJGPP.ENV (DJGPP.ENV es un fichero de configuracion que se coloca en el directorio DJGPP). Añade el directorio BIN de DJGPP a tu PATH. Suponiendo que hallas instalado en el direcotiro C:\DJGPP, deberias poner estas dos lineas en tu fichero autoexec.bat:

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

Ahora deberias reiniciar el ordenador o teclear estas dos instrucciones en la linea de comandos en una sesion DOS (si eres impaciente).

4.- Ejecuta el programa go32-v2.exe sin argumentos:

	go32-v2

Deberia decirte cuanta memoria DPMI y espacio de swap puede usar DJGPP en tu sistema. Saldria algo parecido a esto:

	DPMI memory available: 8020 Kb
	DPMI swap space available: 39413 Kb

(Los numeros que saldran variaran dependiendo de la cantidad de memoria RAM instalada en tu sistem, el espacio en disco disponible y el sevidor DPMI). Si go32-v2 indica menos de 4 MBytes de memoria DPMI, lee la seccion 3.8 de la FAQ. Si tienes mas que esa memoria pero quieres el maximo rendimiento de tu sistema, lee esa seccion igualmente).

Pues ya esta. Ya podemos meternos de lleno en el mundo de la programacion en C con nuestro nuevo compilador de C.

Compilar programas

GCC es un compilador de linea de comando, al que tienes que llamar desde la linea de comandos del DOS.

Compilacion de un programa C con un unico fichero fuente

Veamos como compilar un programa C cuyo codigo fuente esta todo en un unico fichero. Supongamos que ese fichero se llame myfile.c y que usa la biblioteca (libreria) 'lib/libm.a'. Para compilarlo hariamos:

	gcc myfile.c -o myfile.exe -lm

La opcion -lm enlaza con la libreria 'lib/libm.a'. La opcion -lm se pone al final.

Compilar un programa con varios ficheros fuente

1.- Crear Ficheros objeto:

Para compilar un fichero de codigo fuente de C o C++ y dejarlo como fichero objeto, usa la siguiente linea de comando:

	gcc -c -Wall myfile.c  (para codigo fuente C)
  o
	gcc -c -Wall myfile.cc (para codigo fuente C++)

Con esto obtienes el fichero myfile.o. La opcion '-Wall' activa muchos mensajes de aviso (warnings) que son especialmente utiles para nuevos usuarios de GCC. Tambien se pueden usar otras extensiones, comp .cpp (ver seccion 8.4 de la FAQ).

2.- Enlazar ficheros objeto

Para enlazar varios ficheros objeto en un programa ejecutable, usa algo parecido a esto:

	gcc -o myprog.exe mymain.o mysub1.o mysub2.o

Con esto obtienes myprog.exe que ya puede ser ejecutado.

Si en vez de un programa C, tenemos un programa C++, usa algo como esto:

	gxx -o myprog.exe mymain.o mysub1.o mysub2.o

gxx buscara automaticamente las bibliotecas C++, de manera que no tienes que incluirlas en la linea de comando.

3.- Compilacion y enlazado en un solo paso

Puedes combinar los pasos de compilacion y enlazado de la siguiente manera:

	gcc -Wall -o myprog.exe mymain.c mysub1.c mysub2.c

Puedes encontrar mas informacion de las opciones de GCC en la documentacion on-line. Para leerla instala el paquete Texinfo (txi390b.zip,ver la seccion documentacion on-line) y ejecuta:

	info gcc invoking

Entorno de desarrollo (IDE)

Actualmente, DJGPP no viene con un entorno de desarrollo integrado propio. Puedes usar cualquier editor que pueda ejecutar programas DOS y examinar su salida, para que haga las veces de IDE. Mucha gente que trabaja con DJGPP usa una version de GNU Emacs portada a DOS (esta disponible en el mismo sitio donde conseguiste DJGPP). que puede ser compilada con DJGPP. Emacs es un editor muy potente (tiene incorporado un lector Info, de forma que puedes leer la documentacion DJGPP sin salir del editor), pero mucho otros editores libres pueden servir como IDE. La unica tarea que estos editores (incluido Emacs) no pueden realizar es ejecutar un debugger a ventana completa.

Hace poco ha salido un IDE especifico para DJGPP llamado RHIDE. Es del estilo del Turbo-C, tiene auto-indentacion, llama automaticamente al compilador DJGPP, genera los Makefiles automaticamente (lo que facilita la vida a los principiantes) y facilita el acceso a la documentacion OnLine de DJGPP. Tambien incorpora la posibilidad de depurar(debug) programas. Dado que RHIDE es muy reciente se estan haciendo revisiones y arreglos todavia. Sin embargo yo lo estoy usando y no me ha dado ningun problema.

Ultimas versiones de Rhide:

Debugging (Depurar)

Para depurar un programa antes hay que compilar su codigo fuente usando la opcion '-g':

	gcc -c -Wall -g mymain.c
	gcc -c -Wall -g mysub1.c
	gcc -c -Wall -g mysub2.c

y luego enlazarlo tambien con la opcion '-g':

	gcc -g -o myprog.exe mymain.o mysub1.o mysub2.o

Lo siguiente no lo traduzco, por que no se lo que es eso del COFF y puede salirme una traduccion incorrecta. Asi que lo dejo en ingles. De todas formas, al final dice que no importa si no lo entiendes:

(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 ejecuta tu programa con el debugger (depurador):

	fsdb myprog.exe
o
	gdb myprog.exe
o
	edebug32 myprog.exe

(Tendras que conseguir el fichero gdb416b.zip si quieres depurar con GDB). FSDB funciona a pantalla completa y tiene pantalla de ayuda a la que se accede pulsando F1. GDB viene con documentos 'Info' (ver mas abajo) que se pueden leer con info.exe. Edebug32 es un depurador poco usado; escribe h para obtener ayuda.

Documentacion On-Line

La mayor parte de la documentacion On-line esta organizada en un formato hipertexto especial usado por el proyecto GNU. Cada paquete viene con su documentacion que son los ficheros con extension .inf (el Readme.1st dice .iNN) y que se descomprimen en el subdirectorio info/ de tu directorio DJGPP. Para hojear estos documentos, consigue el fichero txi390b.zip, y ejecuta info.exe. Si no sabes como usar Info, pulsa '?'.

Compatibilidad con la version 2.00

Si te actualizas desde la version 2.00 de DJGPP a la version 2.01, deberias reinstalar todos los paquetes que utilices. Debido a los diferentes metodos que usa V2.01 para manejar lineas de comando largas (y nombres de fichero largos bajo Win95), mezclar programas V2.00 con programas V2.01 puede hacer muy dificil depurar problemas. Ver la seccion 16.6 de la FAQ para mas informacion.

Compatibilidad con la version 1.x

Los binarios compilados bajo V1.x pueden usarse para aplicaciones para las cuales no hay version V2. Los programas V1 no pueden ejecutar programas V2 (pero si al reves), asi que no intentes, por ejemplo, usar Make v1.x para ejecutar el compilador v2.0.

COPYRIGHT

DJGPP V2 is Copyright (C) 1995 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.

Traducido por: (5 marzo 1999)
Revisado por: