Bonjour ,
Etant debutant en programmation langage C , malgré mes recherches je n'ai pas trouvé de reponse à ma question .
Concernant les fonctions et leurs declarations :
lors de la compilation d'un projet "x" , comprenant les fichiers suivant :
fonction.h
fonction.c
main.c
je compile donc pour avoir mon archive fonction.a ( librairie statique ) et pour avoir mon binaire main.o , et je lie le tout pour obtenir mon executable main .
Jusque là j'ai compris , mais je bloque sur le fichier d'entête " fonction.h " qui comprend les declarations de ma fonction , je voudrai savoir pourquoi les fichiers d'entête ne sont pas lié lors de la compilation d'un projet ?
en effet si je fais :
gcc -c main.c
gcc -c fonction.c
ar -q fonction.a fonction.o
gcc -o main main.c fonction.a
Je vais obtenir mon executable "main" avec ma librairie "fonction.a" liée statiquement , mais :
- Pourquoi fonction.h n'apparait pas dans les commandes de compilation ?
- Comment sont integré les declarations de fonctions lors de la compilation ?
- Apres compilation , l'executable "main" que j'aurai creé utilisera t'il toujours ce fichier d'entête " fonction.h " ?
- Doit on conserver les fichiers d'entête ou doit on les supprimer aprés compilation ?
Desolé si ma question peut paraitre stupide pour certains mais je debute en programmation et j'ai un peu de mal à comprendre l'utilisation des fichiers d'entête , c'est assez flou et je vous remercie par avance de m'eclairer sur ces points .
Merci pour votre aide .
jnoel
Partager