Petit problème d'intégration header
Fermé
Abdowned
Messages postés
5
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
15 mars 2013
-
25 janv. 2013 à 23:34
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 26 janv. 2013 à 10:20
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 26 janv. 2013 à 10:20
A voir également:
- Petit problème d'intégration header
- Petit 1 comme ² ✓ - Forum Bureautique
- Ecrire les chiffres en petits caractères ✓ - Forum Windows
- Excel trier du plus grand au plus petit - Guide
- Petit 3 ✓ - Forum Word
- Petit colis distribution - Forum Réseaux sociaux
1 réponse
mamiemando
Messages postés
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
Modifié par mamiemando le 26/01/2013 à 10:25
Modifié par mamiemando le 26/01/2013 à 10:25
Non ce n'est pas comme ça que tu dois faire. Ça ressemblera plutôt à ça :
file1.h
file1.c
file2.h
file2.c
main.c
Compilation :
Sous linux :
Les deux premières lignes produisent respectivement file1.o et file2.o qui contiennent le code machine associées à file1.c et file2.c. Dans la dernière ligne de compilation on compile le fichier source qui contient le main et on le linke avec file1.o et file2.o. Si la compilation réussi, on obtient un fichier mon_programme qui contient grosso modo ce qu'il y avait dans file1.o, file2.o et la traduction de main.c en code machine.
Si le programme dépendait de librairies (par exemple la librairie mathématique) on les aurait passé dans cette dernière ligne (une librairie étant juste une réunion de fichier .o sans "main"). Sous linux des fichiers ".so" ou ".a", sous windows ces fichiers ont généralement pour extension ".dll" ou ".lib".
On peut automatiser la compilation avec un makefile (je passe sur ce point) ce qui permet de lancer par la suite simplement la commande "make" pour compiler tout le programme.
Une fois le programme compilé on peut l'exécuter :
Bonne chance
file1.h
#ifndef FILE1_H #define FILE1_H int somme(int x, int y); unsigned abs(int x); #endif
file1.c
#include "file1.h" int somme(int x, int y) { return x + y; } unsigned abs(int x) { return x < 0 ? -x : x;}
file2.h
#ifndef FILE2_H #define FILE2_H void ecrire(int x); #endif
file2.c
#include "file2.h" #include <stdio.h> void ecrire(int x) { printf("%d\n", x); }
main.c
#include "file1.h" #include "file2.h" int main() { int a = 3, b = 5; ecrire(somme(a, b)); return 0; }
Compilation :
Sous linux :
gcc -W -Wall -c file1.c gcc -W -Wall -c file2.c gcc -W -Wall -o mon_programme main.c file1.o file2.o
Les deux premières lignes produisent respectivement file1.o et file2.o qui contiennent le code machine associées à file1.c et file2.c. Dans la dernière ligne de compilation on compile le fichier source qui contient le main et on le linke avec file1.o et file2.o. Si la compilation réussi, on obtient un fichier mon_programme qui contient grosso modo ce qu'il y avait dans file1.o, file2.o et la traduction de main.c en code machine.
Si le programme dépendait de librairies (par exemple la librairie mathématique) on les aurait passé dans cette dernière ligne (une librairie étant juste une réunion de fichier .o sans "main"). Sous linux des fichiers ".so" ou ".a", sous windows ces fichiers ont généralement pour extension ".dll" ou ".lib".
On peut automatiser la compilation avec un makefile (je passe sur ce point) ce qui permet de lancer par la suite simplement la commande "make" pour compiler tout le programme.
Une fois le programme compilé on peut l'exécuter :
./mon_programme
Bonne chance