DOMANDA Header, sorgenti e librerie in C

demda

Utente Attivo
352
49
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 ?
 

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro
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
 
  • Mi piace
Reazioni: demda

Andretti60

Utente Èlite
6,440
5,091
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)
 
  • Mi piace
Reazioni: Mursey e demda

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili