multiple definition of .. first defined here
Bonjour,
J'ai un ordi Windows 64 bits et je programme sous QT Creator. J'ai un problème de compilation lorsque je déclare des variables globales ou définis des fonctions dans un header. Le message est le suivant :
Citation:
multiple definition of 'alphabetL'
first defined here
Mais je n'ai pas le message avec la variable NAN_E.
J'ai consulté quelques forums (https://stackoverflow.com/questions/...in-header-file), mais je n'ai pas trop compris.
On y lit qu'on ne doit pas trop écrire ce genre de code dans un header, mais cela se fait quand même.
~~~~~~
Fichiers.h
~~~~~~
- string.h
Code:
1 2 3 4 5 6 7
| #ifndef STRING_H
#define STRING_H
#include "graph.h"
const char* alphabetL = "abcdefghijklmnopqrstuvwxyz"; // il y a un problème.
...
#endif // STRING_H |
- graph.h
Code:
1 2 3 4 5 6
| #ifndef GRAPH_H
#define GRAPH_H
#include "draw.h"
...
#endif // GRAPH_H |
- draw.h
Code:
1 2 3 4 5 6
| #ifndef DRAW_H
#define DRAW_H
#include "list.h"
...
#endif // DRAW_H |
- list.h
Code:
1 2 3 4 5 6
| #ifndef LIST_H
#define LIST_H
#include "math.h" // It is not <math.h>.
...
#endif // LIST_H |
- math.h
Code:
1 2 3 4 5 6 7 8
| #ifndef MATH_H
#define MATH_H
#include "misc.h"
const ent NAN_E = 0x8000000000000000LL; // Il n'y pas de problème.
...
#endif // MATH_H |
- misc.h
Code:
1 2 3 4 5
| #ifndef MISC_H
#define MISC_H
// pas de #include "..."
#endif // MISC_H |
- main.h
Code:
1 2 3 4 5 6
| #ifndef MAIN_H
#define MAIN_H
#include "../Graph/string.h"
...
#endif // MAIN_H |
~~~~~~~
Fichiers.cpp
~~~~~~~
- string.cpp
Code:
#include "string.h"
- graph.cpp
- draw.cpp
- misc.cpp
- main.cpp
Est-ce qu'un aurait une solution s'il vous plaît ?
Merci d'avance.