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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#ifndef GRAPH_H
#define GRAPH_H
 
#include "draw.h"
...
#endif // GRAPH_H
- draw.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#ifndef DRAW_H
#define DRAW_H
 
#include "list.h"
...
#endif // DRAW_H
- list.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#ifndef MISC_H
#define MISC_H
 
// pas de #include "..."
#endif // MISC_H
- main.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#ifndef MAIN_H
#define MAIN_H
 
#include "../Graph/string.h"
...
#endif // MAIN_H
~~~~~~~
Fichiers.cpp
~~~~~~~
- string.cpp
- graph.cpp
- draw.cpp
- misc.cpp
- main.cpp
Est-ce qu'un aurait une solution s'il vous plaît ?
Merci d'avance.