|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jun 2006
Messaggi: 52
|
[C] inclusione file
Salve, sto creando un piccolo programma in C ma ho problemi con l'inclusione dei file header.
Ho creato il file "fixed.h" in cui definisco una struct e inserisco l'interfaccia dei metodi, un file "fixed.c" in cui implemento i metodi del file header ed un programma di test in cui è presente il main. Sia sul file .c che nel file di test ho messo: #include "fixed.h" ma quando compilo il file di test mi viene detto che i metodi che uso nel main non sono definti. Per caso dimentico qualcosa?
__________________
Macbook Pro 15,4" 2,4Ghz Penryn, 2Gb Ram, 200Gb HD |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
a parole sembra tutto giusto, posta in piccolo esempio dei 3 file
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jun 2006
Messaggi: 52
|
Fixed.h
#define F 8 #include <stdio.h> typedef unsigned int FixedPoint; FixedPoint fixpoSum(FixedPoint a, FixedPoint b); ....altri metodi.... Fixed.c #include <stdio.h> #include "Fixed.h" #include <math.h> FixedPoint fixpoSum(FixedPoint a, FixedPoint b){ return a+b; } ...altri metodi implementati.... Test.c #include <stdio.h> #include "Fixed.h" int main(){ FILE * ptr; FixedPoint a; a=fixpoSum(5,5);
__________________
Macbook Pro 15,4" 2,4Ghz Penryn, 2Gb Ram, 200Gb HD |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
come compili i sorgenti? ah è buona cosa usare gli include guard:
http://it.wikipedia.org/wiki/Include_guard
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jun 2006
Messaggi: 52
|
Avevo già provato ad inserire #ifndef FIXED_H_ ed #endif ma non cambia nulla.
Per quanto riguarda la compilazione: gcc -c fixed.h gcc -c fixed.c gcc -c test.c gcc -o test test.c -lm -lm perchè uso la libreria math.h
__________________
Macbook Pro 15,4" 2,4Ghz Penryn, 2Gb Ram, 200Gb HD |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
devi fare così gcc -c -o fixed.o fixed.c gcc -c -o test.o test.c gcc -o test test.o fixed.o -lm in questo modo crei gli object file per ogni file compilato e poi li linki insieme nell'eseguibile "test". in questi casi utilizzare un makefile semplifica notevolmente le cose, sopratutto se nel progetto aggiungerai altri file da compilare.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì, ma non ha detto che si limita a solamente quel metodo. E' generalmente invece utile includere il .h per non dover preoccuparsi dell'ordine in cui si implementano le funzioni o se ci sono chiamate incrociate.
|
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Jun 2006
Messaggi: 52
|
Quote:
__________________
Macbook Pro 15,4" 2,4Ghz Penryn, 2Gb Ram, 200Gb HD |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' sufficiente per controllare eventuali errori di compilazione.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:26.











ho concluso con: kvegeta, doctordb, Leland Gaunt.









