compilation g++ de plusieurs header
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 :
Code:
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.h :
Code:
1 2 3 4 5
| #ifndef prog1_h
#define prog1_h
/* function prototype */
int prog1(double a, double b, short *c, short *d);
#endif |
prog1.cpp :
Code:
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.h :
Code:
1 2 3 4 5 6
| #ifndef prog2_h
#define prog2_h
/* function prototype */
#include<string>
void prog2(std::string file, ...);
#endif |
prog2.cpp :
Code:
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.
} |
main_prog.cpp :
Code:
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;
} |
Compilation :
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