Bonjour,
J'ai une erreur à la compilation de mon programme et je n'arrive pas à trouver des explications sur la manière de compiler un fichier *.cpp qui charge plusieurs fichiers d'en-têtes *.h (avec #include "fichier1.h" etc.).
Est-ce que vous pourvez me donner la ligne de commande pour compiler cette ensemble de fichiers ci-dessous, parce que g++ main_prog.cpp -o main_prog provoque cette erreur :
prog1.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 main_prog.cpp: (.text+0x24df): undefined reference to `prog1(double, double, short*, short*)' main_prog.cpp: (.text+0x2854): undefined reference to `prog2(std::basic_string<char,...) main_prog.cpp: (.text+0x3c76): undefined reference to `prog1(double, double, short*, short*)' main_prog.cpp: (.text+0x3fe5): undefined reference to `prog2(std::basic_string<char,...) collect2: ld a retourné 1 code d'état d'exécution
prog1.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #ifndef prog1_h #define prog1_h /* function prototype */ int prog1(double a, double b, short *c, short *d); #endif
prog2.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include <iostream> #include <cstdlib> #include <cmath> using namespace std; int prog1(double a, double b, short *c, short *d) { etc. }
prog2.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #ifndef prog2_h #define prog2_h /* function prototype */ #include<string> void prog2(std::string file, ...); #endif
main_prog.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <iostream> #include <sstream> #include <string> #include <stdlib.h> #include <vector> using namespace std; void prog2(std::string file, ...) { etc. }
Compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <iostream> #include <string> #include <fstream> #include <new> #include <iomanip> #include <cstdlib> #include <algorithm> #include <vector> #include <sstream> #include "prog1.h" #include "prog2.h" using namespace std; int main(int argc, char *argv[]) { etc. prog1(w,x,&y,&z); etc. prog2(file, etc.); return 0; }
g++ -c prog1.cpp --> Pas d'erreur à la compilation
g++ -c prog2.cpp --> Pas d'erreur à la compilation
g++ -c main_prog.cpp --> Erreurs listées ci-dessus
Partager