Compilacion en C - GCC

jesgoncos
09 de Julio del 2004
Estoy compilando programas en C con el GCC.
Este programa enlaza varios programas C entre si.
Quiero que estos enlaces sean dinámicos y que cuando modifique uno de ellos (cualquier programa) no tenga que hacer referencia en la compilación a los que llama .
Ej. Tengo 3 pgrms.
PM que llama al PM_1 y este a su vez al PM_11. Si modifico el PM_1 al compilarlo no quiero que sea necesario hacer referencia al programa que el llama PM_11, ni al llamante PM. ¿Esto es posible? ¿Cómo?
¿Qué parámetros se dan en gcc para estos casos?
Gracias

Zeros Metalium
09 de Julio del 2004
Para eso existe MAKE:
La idea es indicarun objetibo a construir, las dependecias y el modo de obtener el objetibo:
Por ejemplo para hacer un programa que use varios ficheros con estas dependencias:
f1.c usa rutinas que estan en f2.c y f3.c
f2.c usa rutinas que estan en f4.c y f3.c
f3.c y f4.c no dependen de nadie.
Asi que creamos un arcchivo llamado "makefile" que diga:

# archivo makefile de ejemplo
# <--- asi se ponen los comentarios :-)

# El programa depende de todos los obj.
prog.exe: f1.obj f2.obj f3.obj f4.obj
gcc -oprog.exe f1.obj f2.obj f3.obj f4.obj

f1.obj: f2.obj f3.obj
gcc -c f1.c f2.obj f3.obj

f2.obj: f3.obj f4.obj
gcc -c f2.c f3.obj f4.obj

#Esta vien, f3.obj depende de si se modifica f3.c :-)
f3.obj: f3.c
gcc -c f3.c

f4.obj: f4.c
gcc -c f4.c

# fin del makefile

Bien, pensando de la manera "objetibo, de que depende, que tengo que hacer para que se contrulla" podemos hacer proyectos inmensos con gran eficiencia.
Oviamente cuando no exista ningun obj se compìlara todo siguiendo el arbol de dependencias que armamos.
Para mas informacion te remito al info o al man de make.

Suerte.