DOMANDA Header, sorgenti e librerie in C

Pubblicità

demda

Utente Attivo
Messaggi
352
Reazioni
49
Punteggio
40
Ciao ragazzi, spero possiate aiutarmi a fare un po' di chiarezza.
Se non ho capito male, un file headers è un file con estensione .h che contiene i prototpi delle funzioni da includere nella libreria, mentre nei file .c c'è l'implementazione delle funzioni "dichiarate" nel file headers. compilando entrami i files si ottiene la libreria .lib. Quindi per usare questa libreria mi basta conoscere ed includere nel file sorgente il file headers .h della libreria che voglio includere.
È corretto ?
 
Compilando il file .c con gcc -c namefile.c ottieni un file object namefile.o.
Se hai un main.c che utilizza delle funzioni definite in fun.h, implementate in fun.c compili con gcc -o nomeeseguibile main.o fun.o
 
Compilando il file .c con gcc -c namefile.c ottieni un file object namefile.o.
Se hai un main.c che utilizza delle funzioni definite in fun.h, implementate in fun.c compili con gcc -o nomeeseguibile main.o fun.o
E' un po' diverso da quello che ha chiesto il OP, che era riferito a una libreria (.lib) Quello che hai spiegato tu e' come linkare diversi file oggetto per creare un eseguibile. In quel caso non si ha bisogno di un .h per ogni file sorgente, basterebbe un include unico.
Ma il discorso e' lo stesso, i file .h (comunemente chiamati include) sono quelli che contengono le definizioni dei prototipi delle funzioni ed eventualmente la definizione delle costanti e dei tipi usati nel file oggetto.
Una domanda interessante sarebbe quale sarebbe la differenza nel creare file oggetto (.o) o una libreria (.lib)
 
Pubblicità
Pubblicità
Indietro
Top