No es un bug, es una característica no documentada

miércoles, 21 de enero de 2015

Entornos de desarrollo. Resolución de dependencias

10:09 Posted by Inazio No comments
Vamos a ver como instalar un programando compilandolo en la propia máquina virtual para lograr un mayor rendimiento, es decir, resolución de dependencias Vamos a hacerlo con el aMSN, por ejemplo

MAKE

Pasos a seguir:



  • Descomprimimos (tar -xzvf archivo.tar.gz) y desde la consola de comandos entramos en la carpeta 
  • Escribimos ./configure para que compruebe el procesador y las librerias necesarias
  • Si algo falta lo instalamos, y volvemos a lanzar ./configure
  • Una vez que muestre el resumen, ya podemos lanzar el programa aMSN
  • Pero aún así nos metemos en dicha carpeta y escribimos sudo make install, que generará ejecutables y los enlazará al path
  • Por fín podemos lanzarlo

MAKEFILE

Estructura de un makefile

VARIABLE=valor
VARIABLE=valor
VARIABLE=valor
VARIABLE=valor
# comentario
objetivo: dependencias
     comando
     comando

objetivo: dependencias
     comando
     comando

Un ejemplo

prog.o: prog.c global.h modulo.h 
     gcc -c prog.c -o prog.o

modulo.o:modulo.c modulo.h
     gcc -c modulo.c -o modulo.o

programa: modulo.o prog.o biblio.a
     gcc -o programa modulo.o  \ 
     prog.o biblio.a

No sólo sirve para programas, también para cualquier otra cosa:

manual.dvi: manual.tex
     latex manual.tex

Suponiendo que tenemos estos tres archivos:
main.c
libreria.h
libreria.c

La forma de compilación sería la siguiente:


Los objetivos sería lo que extraemos de cada orden, es decir libreria.o, main.o y ejecutable.exe.
Las dependencias, sería de lo que depende (valga la redundancia) las compilaciones, es decir, libreria.o depende de libreria.c, main.o de main.c y ejecutable.exe de main.o y libreria.o

Ahora creamos un nuevo archivo llamado Makefile para hacer el fichero de las dependencias
Tiene que ser con ese nombre literalmente, y no otro.
Y escribiremos dentro los objetivos y las dependencias de nuestro programas


Es decir, el código de los programas queda tal que así:

main.c


libreria.c


libreria.h


Makefile


Con esto conseguimos hacer un código genérico que nos compile cualquier programa, cambiando tan solo su nombre y las lineas que contiene las dependencias.

0 comentarios:

Publicar un comentario