como empaquetar todo (librerias,.c,etc)en un .out en C

Iniciado por Hackmundy, Septiembre 18, 2016, 06:37:50 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Septiembre 18, 2016, 06:37:50 PM Ultima modificación: Septiembre 18, 2016, 07:22:36 PM por Gabriela
Hola como estan no entiendo aun mucho de los makefile, pero me gustaria saber como puedo unir todas las librerias y codigo fuente usadas en .out.

SALUDOS y disculpen mi idnorancia.


Un Hacker sabe de la materia;
Un Lamer Cree Saberlo;
Y yo solo aprendo.

Un makeefile simple se compone de reglas. Las reglas tienen el siguiente formato:

Código: php
target ... : prerequisites ...
        recipe


Las partes componentes de una regla, y su significado, son:
- target es el nombre de un archivo o de una acción.
- prerequisite es un archivo necesario para crear target.
- recipe es una acción (o un conjunto de acciones) a ejecutar. Un recipe comienza con una tabulación y no con espacios.


Para tu objetivo puedes hacer lo siguiente:

Código: php
a.out : foo.c bar.c defs.h objeto.o /dir/to/archive/archive.a -lsome_dynamic_lib
cc -lsome_dynamic_lib foo.c bar.c objeto.o /dir/to/archive/archive.a


* Si esta es la primera regla en el makefile, entonces será la que se ejecutará por defecto al ejecutar make.

Esta regla especifica que:
* Si no existe a.out, entonces ejecutar el recipe
* Si existe a.out, pero los prerequisites (foo.c bar.c defs.h objeto.o /dir/to/archive/archive.a -lsome_dynamic_lib) han cambiado su fecha de modificación, entonces ejecutar el recipe.

Mi recipe es un comando común de cc. Como no especifico el parámetro -o, entonces cc crea el ejecutable a.out.

Hay muchas más funcionalidades que pueden facilitar la tarea de escribir reglas (GNU Make brinda muchas más).

Manual de GNU Make:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos