[Tech] header C
    Llewlyn 
    lewlin@prato.linux.it
       
    Mer 31 Dic 2003 13:50:07 CET
    
    
  
On Wednesday 31 December 2003 11:12, Valerio Montagnani wrote:
> Se al contrario
> uso la direttiva include con i nomi dei moduli con estenzione .c , funziona
> tutto.
>
> Che cosa sto sbagliando?
Non sbagli niente, infatti devi "dire" al compilatore che ci sono altri 
file .c di cui ha bisogno, però ci sono diversi modi x "dirglielo", non 
necessariamente includendo il codice con una direttiva.
Per esempio, supponiamo main.c come file principale, e mod1.c mod1.h come 
primo modulino e mod2.c mod2.h come secondo.
Ogni file modx.c ha una direttiva iniziale che include il suo header, 
contenente definizioni e ogni altra roba che serve, basta lanciare un
gcc main.c mod1.c mod2.c
Per compilare la funzione main utilizzando tutte le subroutines (e altro) 
presenti nei vari files.
Oppure potresti scrivere un makefile per organizzare in modo ordinato le 
dipendenze, ad esempio:
--------------------- cut ---------------------------
all : main.o mod1.o mod2.o
        gcc -o app main.o mod1.o mod2.o
                                                                                
main : main.c
        gcc main.c -o main.o
                                                                                
mod1 : mod1.c mod1.h
        gcc mod1.c -o mod1.o
                                                                                
mod2 : mod2.c mod2.h
        gcc mod2.c -o mod2.o
--------------------- cut ---------------------------
In questo modo compili singolarmente ciascun file sorgente, dopodichè generi 
l'applicazione usando i vari file oggetto. La sintassi è del tipo
target : dependency dependency
	command 
	command
	[...]
Per capire come scrivere efficacemente makefile cmq, vai sul GNU Make Manual 
(ing) http://www.gnu.org/manual/make-3.79.1/html_chapter/make_toc.html
---
Tommaso
    
    
       
       Maggiori informazioni sulla lista 
	       flug-tech