Je sais pas bien d'utiliser des variables globales en C++, c'est pas objet et tout... Mais là je suis obligé. Je n'obtient que des erreurs à l'utilisation de variable globale.
Donc plutôt qu'une grande explication j'ai résumé mon problème dans un exemple simple :
classeVisibility.h
classeVisibility.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #ifndef __CLASSE_VISIBILITY_H__ #define __CLASSE_VISIBILITY_H__ class MaClasse { int j; public: MaClasse(int i); void Fonction(); }; J'obtien #endif /*__CLASSE_VISIBILITY_H__*/
main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <iostream> using namespace std; #include "classeVisibility.h" MaClasse::MaClasse(int i){ j = i; } void MaClasse::Fonction(){ cout << "Entrée dans la fonction" << j <<endl; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include "classeVisibility.h" MaClasse classe(0) ; char toto; main(){ classe.Fonction(); }
Les erreurs obtenue sont :
ça une journée que j'ai ces erreurs de linkage et je n'arrive vraiment pas en voir la source y a une bonne âmes altruiste qui pourrait m'aider à résouvdre mon problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 g++ -dbx -c -o testCompilOnly/man.o testCompilOnly/main.cpp g++ -dbx -c -o testCompilOnly/classeVisibility.o testCompilOnly/classeVisibility.cpp g++ -dbx -o test testCompilOnly/man.o testCompilOnly/classeVisibility.o /usr/lib/gcc/i586-mandriva-linux-gnu/4.0.1/../../../crt1.o: In function `_start': ../sysdeps/i386/elf/start.S:115: undefined reference to `main' testCompilOnly/man.o:(.ctors+0x0): undefined reference to `global constructors keyed to classe' testCompilOnly/classeVisibility.o:(.ctors+0x0): undefined reference to `global constructors keyed to _ZN8MaClasseC2Ei' collect2: ld returned 1 exit status make: *** [accueil] Erreur 1
Partager