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
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__*/
classeVisibility.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;
}
main.cpp
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 :
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
ç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 ?