Dependiendo del sistema, se pueden encontrar diversos compiladores ya
sea comprados o de dominio público. Los compiladores que se tienen
aquí son:
LENGUAJE COMPILADOR ESTATUS
____________________________________________________________
C gcc Dominio público
C c Comprado
C++ cc Comprado
Fortran f77 Comprado
Fortran90 f90 Comprado
Pascal pc Comprado
Para compilar solo se requiere del programa fuente, correr el compilador
y obtener un archivo ejecutable llamado "a.out", ejemplo:
archivo fuente -> Compilador -> archivo objeto -> Ligador -> ejecutable
Cuando se realiza la unión de los archivos objeto (ligador) no solo une los archivos que se indicaron, también liga bibliotecas del sistema. Y para que el sistema conozca donde están dichas bibliotecas se debe de indicar explícitamente con una variable de ambiente
además de indicar que bibliotecas ligar. Por ejemplo:
Para ligar las librerías gráficas de PGPLOT y las
librerías de X11 se haría lo siguiente:
o para hacer uso de las librerias de STARLINK se anexaria lo siguiente a la linea de compilación:
En la red se encuentra diversa paquetería para compilar en diversos sistemas y como son un conjunto grande de programas es casi imposible indicar en una línea de comando todas las opciones necesarias y los archivos a ligar, por lo cual se utiliza una utileria de Unix llamada "make", la que utiliza el archivo "Makefile" donde define todas las opciones para compilar y ligar el paquete. Notar que si se esta compilando un paquete para OpenWindows y X11, en el archivo Makefile debe de contener estas rutas:
o algún otro que se defina como el lugar donde se pondrán los paquetes que no son del sistema y por conveniencia se deben de respetar los directorios del sistema como son:
/usr/bin /usr/sbin /usr/openwin/bin etc . . .
Como un ejemplo practico de un programa demasiado conocido, puedes editar lo siguiente y compilarlo:
moises@tonatiuh% vi hi.c #include <stdio.h> main () { printf("\n"); printf("**************\n"); printf("*Hola a todos*\n"); printf("**************\n\n"); } moises@tonatiuh% gcc -o hi hi.c moises@tonatiuh% hi *Hola a todos*