Multiple definition error (link)
Bonjour,
il semblerait que c'est un problème classique mais :
1. je ne comprends pas pourquoi j'ai ce problème
2. je n'arrive pas à solutionner mon problème
Donc voici ce que je fais. J'ai un fichier header dont plusieur .c se servent. J'ai pour chacun de mes blocs de variables définit des conditions comme l'indique ce tuto : http://melem.developpez.com/langagec/objc/
en dessous de l'erreur une partie du code.
et pourtant j'ai l'erreur suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| ./demo2.o:(.data+0x8): multiple definition of `affiche_magnifique'
./demo1.o:(.data+0x8): first defined here
./demo2.o:(.data+0x4): multiple definition of `sourisCapteur'
./demo1.o:(.data+0x4): first defined here
./demo2.o:(.bss+0x0): multiple definition of `demo_index'
./demo1.o:(.bss+0x0): first defined here
./demo2.o:(.data+0x0): multiple definition of `demo_max'
./demo1.o:(.data+0x0): first defined here
./demo2.o:(.bss+0x4): multiple definition of `ticks'
./demo1.o:(.bss+0x4): first defined here
./demo2.o:(.bss+0x8): multiple definition of `timer'
./demo1.o:(.bss+0x8): first defined here
./demo2.o:(.bss+0xc): multiple definition of `fullscreen'
./demo1.o:(.bss+0xc): first defined here
./demo3.o:(.data+0x8): multiple definition of `affiche_magnifique'
./demo1.o:(.data+0x8): first defined here
./demo3.o:(.data+0x4): multiple definition of `sourisCapteur'
./demo1.o:(.data+0x4): first defined here
./demo3.o:(.bss+0x0): multiple definition of `demo_index'
./demo1.o:(.bss+0x0): first defined here
./demo3.o:(.data+0x0): multiple definition of `demo_max'
./demo1.o:(.data+0x0): first defined here
./demo3.o:(.bss+0x4): multiple definition of `ticks'
./demo1.o:(.bss+0x4): first defined here
./demo3.o:(.bss+0x8): multiple definition of `timer'
./demo1.o:(.bss+0x8): first defined here
./demo3.o:(.bss+0xc): multiple definition of `fullscreen'
./demo1.o:(.bss+0xc): first defined here
[..]
./demo1.o:(.bss+0xc): first defined here
./demo4.o:(.data+0x8): multiple definition of `affiche_magnifique'
./demo1.o:(.data+0x8): first defined here
./main.o:(.bss+0xc): multiple definition of `fullscreen'
./demo1.o:(.bss+0xc): first defined here
./main.o:(.bss+0x0): multiple definition of `demo_index'
./demo1.o:(.bss+0x0): first defined here
./main.o:(.data+0x4): multiple definition of `sourisCapteur'
./demo1.o:(.data+0x4): first defined here
./main.o:(.data+0x0): multiple definition of `demo_max'
./demo1.o:(.data+0x0): first defined here
./main.o:(.data+0x8): multiple definition of `affiche_magnifique'
./demo1.o:(.data+0x8): first defined here
./main.o:(.bss+0x4): multiple definition of `ticks'
./demo1.o:(.bss+0x4): first defined here
./main.o:(.bss+0x8): multiple definition of `timer'
./demo1.o:(.bss+0x8): first defined here |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#ifndef H_VAR
#define H_VAR
int demo_index = 0, // Index de la demo en cours
demo_max = 4, // Nombre de démos maximum
ticks = 0, // Variable de temps pour le moteur physique
timer = 0; // Timer 1
#endif
GLuint texID[2]; // buffer pour la texture
int X_pos,
Y_pos; // position de la souris
#ifndef H_PAR
#define H_PAR
int sourisCapteur = 1, // Choix entre le mode souris et le mode capteurs
fullscreen = 0, // Mode plein ecran
affiche_magnifique = 1; // Choix d'afficher le logo ou non
#endif
float capteur_norm[NB_CAPTEURS+1]; // donnees des faux capteurs normalisees (pour le mode souris) |
et je n'ai aucun souci avec et et
Je ne comprends pas :(
Pour aider, voici le fichier de sh de mon build.sh :
Code:
1 2 3
| gcc -c -O3 -std=gnu99 -ffast-math src/cp*.c src/chipmunk.c ./*.c -Isrc
g++ -c maincpp.cpp usbdevice.cxx
g++ -O3 -std=gnu99 -ffast-math ./*.o -Isrc -lglut -lpng -lusb -lpthread -o alldemos |
Merci d'avance