Curso de CEl Rincón del C - www.elrincondelc.com

Instalación y uso de DJGPP

[Anterior] [Siguiente] [Contenido]

Inicialmente este documento se basaba en el readme.1st de la versión 2.01.

Esta información corresponde a la versión 2.03 (la versión actual es la 2.03) del DJGPP. Consulta los ficheros readme.1st en la página de DeCas en caso de que la información esté desfasada.

Encontrarás más documentación sobre DJGPP en la página del Proyecto DECAS (proyecto para la traducción del compilador DJGPP al Castellano, por favor colabora tu tambien).

Si quieres estar a la última en DJGPP consulta la sección DJGPP Actualizado.

Contenido:

[Arriba]

Donde conseguir DJGPP

En Internet:

Puedes encontrar el DJGPP en:

http://www.delorie.com/djgpp/ (La página está en Inglés)

Tienen un apartado en el que te indican que ficheros debes bajarte segun lo que quieras hacer (zip picker). Por ejemplo, si solo quieres compilar programas de C, no necesitas los ficheros relacionados con C++. Para saber lo que necesitas consulta más abajo el apartado 'Ficheros necesarios para empezar'.

Una vez tengas los ficheros que necesitas debes ir al FTP de Rediris y bajartelos:

ftp://ftp.rediris.es/mirror/simtelnet/gnu/djgpp/

En CD-ROM:

Si tu conexión a Internet es muy lenta y dado que son muchos Megabytes los que hay que bajarse puedes encargar tu CD-Rom DJGPP con la versión más actualizada por sólo 1.500 pts (US$10) aqui.

[Arriba]

Ficheros incluidos en la distribucion

Aquí tienes una lista detallada de los ficheros que forman parte de la distribución. Es una información interesante, así te haces una idea de las herramientas que dispones. Desgraciadamente esta lista corresponde a la versión 2.01 y la última es la 2.03.

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

[Arriba]

Ficheros necesarios para empezar

Para compilar programas en C:djdev*.zip
gcc*b.zip
bnu*b.zip
v2/
v2gnu/
v2gnu/
Si tambien quieres compilar C++:gpp*b.zip
lgp*.zip
v2gnu/
v2gnu/
Para ver los manuales (ejecutar info):txi*b.zipv2gnu/
Entorno de desarrollo (Estilo Borland C, recomendado):rhide*b.zipv2gnu/
FAQ (lista de preguntas más frecuentes, recomendado):faq*b.zipv2/

El asterisco indica el número de versión. Por ejemplo el fichero correspondiente a la versión 2.95.2 de gcc será gcc2952b.zip. Conviene coger siempre los de número mayor, que indica la última versión. Aquí están las últimas versiones de algunos ficheros:

Es 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. Lo mejor es bajarse los ficheros binarios y no complicarse la vida.

También puede resultar interesante bajarse mak*b.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.

Es importante indicar que DJGPP es mucho más que estos ficheros, existen multitud de programas y herramientas que facilitan mucho la vida del programador. Esto no es más que la instalación mínima (y muy mínima).

Para mas informacion descargate tambien el fichero faq*b.zip (la FAQ completa, última versión @versionfaq;) y lee el capitulo 4.

[Arriba]

Como instalar DJGPP (Instalacion basica)

Suponiendo que ya te has bajado todos los ficheros necesarios ahora vamos a proceder a la instalación.

1.- Lo primero que se debe hacer es crear el directorio (o carpeta) donde instalaremos DJGPP. Podemos instalar DJGPP en cualquier unidad de nuestro disco duro. Vamos a suponer que lo instalamos en C:\DJGPP (quizá sea lo mejor para no complicarse). Importante: No lo instales en ninguna carpeta llamada DEV, ni c:\dev, ni d:\dev, en ninguna unidad.

Si tienes la version 1.x instalada, es mejor borrarla entera (mezclar programas v1.x con v2 puede dar muchos problemas). El unico programa v1.x que se deberia conservar es el go32.exe.

2.- Copia los ficheros que te has bajado al directorio (o carpeta) de instalación. En nuestro caso C:\DJGPP.

3.- Ahora tienes que descomprimir los ficheros que te has bajado. Para descomprimir puedes usar el winzip (si tienes win95/98/2000), puedes usar el programa pkunzip, o si no usar el unzip386 que viene con el djgpp.

Si usas winzip marca la casilla 'use folder name' para que conserve la estructura de directorios. Descomprime los zip en el directorio que has creado para la instalación (por ejemplo C.\DJGPP).

Si usas pkunzip o unzip386 debes entrar en el directorio de instalación. Ahora descomprime los ficheros zip en ese directorio, conservando la estructura de directorio. Por ejemplo para el fichero djdev203.zip:

	pkunzip -d djdev203
o:
	unzip386 djdev203

Los ficheros comprimidos ya no son necesarios, han cumplido su misión, si quieres ahorrar espacio puedes borrarlos. Recuerda siempre guardar una copia en disquetes o cdrom, nunca se sabe si tendrás que volver a instalar.

4.- Ahora tenemos que hacer cambios en el fichero AUTOEXEC.BAT. Este fichero se encuentra en C:\. Edítalo y añade las líneas siguientes (esto vale si lo instalas en c:\djgpp, si no tienes que poner el directorio que has elegido):

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

5.- Ahora deberias reiniciar el ordenador para que se activen los cambios hechos en el autoexec.bat (es lo mejor) o teclear estas dos instrucciones en la linea de comandos en una sesion DOS (si eres impaciente).

6.- Una vez reiniciado ejecuta el programa go32-v2.exe sin argumentos (si estas en windows ejecutalo en una ventana DOS):

	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 sistema, 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.

[Arriba]

Creación de programas (Compilación)

Vamos a ver primero cómo compilar un sencillo programa ('hola mundo' estará bien). Es interesante que entiendas esto primero para saber cómo funciona el compilador. Luego puedes usar un IDE, que es un entorno de desarrollo (como por ejemplo Turbo Pascal o Borland C) para hacer el trabajo más cómodo. Existe uno muy bueno para principiante (y para profesionales) llamado Rhide.

Para este ejemplo necesitas un editor de texto: el edit del DOS o el block de notas del Windows estarían bien. Crea un fichero con el editor y copia el siguiente código:

#include <stdio.h>

 int main()
         {
         printf( "Hola mundo\n" );
         return 0;
         }

Llámalo myfile.c. Puedes guardarlo en el directorio que quieras, no tiene por qué estar dentro del directorio DJGPP. Puedes guardarlo por ejemplo en un directorio llamado misprog (c:\misprog).

Ya tenemos el fichero fuente, ahora sólo hace falta compilarlo. Para compilar nuestro programa usamos el GCC. Este es un compilador de linea de comando, al que tienes que llamar desde la linea de comandos del DOS. Se encuentra en el subdirectorio 'bin' del directorio donde hemos instalado djgpp.

Compilacion de un programa C con un unico fichero fuente

Vamos a compilar nuestro fichero fuente. Desde el directorio donde tenemos guardado myfile.c (por ejemplo c:\misprog) tecleamos:

	gcc myfile.c -o myfile.exe

Si todo va bien (debería hacerlo) aparecerá en ese directorio el programa myfile.c listo para ser ejecutado. Perfecto, ya tenemos nuestro primer programa.

Compilacion de un programa C que usa alguna biblioteca (o librería)

Ahora vamos a suponer que nuestro programa usa la biblioteca (libreria) 'lib/libm.a' (el anterior no la usa). 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

[Arriba]

Debugging (Depuración)

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

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.

[Arriba]

Documentacion On-Line

La documentación OnLine es aquella que se consulta directamente sobre el ordenador, que no está en papel.

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 '?'.

[Arriba]

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.

[Arriba]

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.

[Arriba]

Entorno de desarrollo (IDE)

Un entorno de desarrollo es un programa que se encarga de todas las fases del desarrollo: edición, generación de makefiles, compilación y depuración.

Edición: el programa debe servir como editor de textos y estar orientado a la programación.

Generación de makefiles: cuando tenemos varios ficheros fuente es conveniente que el ide genere automáticamente el makefile (el fichero que da instrucciones al compilador sobre lo que debe hacer).

Compilación: el ide debe permitir compilar y ejecutar el programa que estamos desarrollando sin necesidad de salir al DOS.

Depuración: es conveniente que depure los programas y nos muestre los errores y warnings que se produzcan.

El IDE no funciona sólo, necesita a los programas DJGPP, es tan sólo una herramienta que nos hace más facil trabajar con todos los programas que hacen falta. Si te bajas sólo el IDE no funcionará nada.

No es estrictamente necesario trabajar con un entorno de desarrollo, pero es muy conveniente (cómodo sobre todo).

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 DOS de GNU Emacs (esta disponible en el mismo sitio donde conseguiste 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 muchos 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.

[Arriba]

Entorno RHIDE

Si estás acostumbrado a entornos del estilo Borland C (para DOS) o Turbo C existe un IDE especifico para DJGPP llamado RHIDE. 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.

Puedes encontrarlo en la página del DJGPP pero también en (Ultimas versiones de Rhide):

Consigue el archivo rhide*b.zip e instálalo en tu directorio djgpp como se indica más arriba.

Para ejecutarlo simplemente entra en tu directorio de programas (por ejemplo c:\misprog) y teclea rhide desde DOS. Se abrirá el entorno de desarrollo. Para crear un programa entra en el menu 'File' -> 'New'. Escribe el código fuente de tu programa. Una vez que hayas acabado entra en el menu 'Run' -> 'Run' o pulsa directamente CTRL-F9 para compilar el programa.

[Arriba]

[Anterior] [Siguiente] [Contenido]

© Gorka Urrutia

www.elrincondelc.com