Originariamente inviato da Ol3iconfini
Salve, ho i seguenti moduli, e non riesco a compilare con gcc:

mat.c (modulo principale) che include cach.c
cach.c che include hello.h, hello.c, vect.h, cach.h
hello.c che include hello.h, common.h, vect.h
No no no.
Non devi includere sorgenti .c. Nei .c ci vanno tutte le variabili/funzioni (insomma ... le implementazioni) che vuoi e negli header .h ci vanno tutte quelle dichiarazioni (costanti, macro, strutture ecc...) che sono indispensabili per usare ciò che hai scritto in un sorgente. Punto.

Per compilare usa:
gcc -c -o modulo.o modulo.c

e per linkare usa:
gcc -o prog modulo1.o modulo2.o ecc....

Più tutti gli eventuali flag per debugging ecc... o eventuali librerie aggiuntive.
Meglio magari se crei un Makefile per automatizzare la fase di build.