structure global : multiple definition
Voila j'ai une structure global dans un .h
Ma structure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| typedef struct s_param
{
char *name;
unsigned int nbArg;
unsigned long int syscall;
unsigned int typeRetour;
int firstArg;
int secondArg;
int thirdArg;
int fourthArg;
int fifthArg;
int sixthArg;
} t_param; |
et que je declare ma global juste en dessous dans mon .h.
Je vous ai mis juste deux ligne car les 300 lignes de syscall serait un peu horrible :D
Code:
1 2 3 4 5 6 7 8 9 10 11
|
# define INT 10
# define UINT 11
# define STR 12
# define PTR 13
const t_param g_param[300] =
{
{"read", 3, 0, INT, INT, PTR, UINT, 0, 0, 0},
{"write\t", 3, 1, INT, INT, STR, UINT, 0 ,0 ,0}
}; |
Donc cette global est uniquement en lecture. En incluant le .h que dans un seul .c sa marche et c'est fonctionnel.
Malheureusement pour eviter de rendre un peu le fichier trop sal, j'ai eu envie de partager mes fonctions dans plusieurs .c
Mais cette erreur apparait :
Code:
1 2 3 4
| get_reg.o:(.rodata+0x20): multiple definition of `g_param'
main.o:(.rodata+0x20): first defined here
collect2: ld returned 1 exit status
make: *** [test] Error 1 |
Cette global est pour le moment utilise uniquement dans deux .c (c'est pour sa que l'erreur n'est que dans deux .c).
Donc voila si vous avez une idee ou deux ce serait cool car la je bloque.
Ps : j'ai essaye de la declare en extern la global mais ne marche pas et me fait la meme erreur avec des warnings en plus.
Cordialement