Bonjour,
Cela fait plus d'une heure que je bataille sur un problème, sans doute très bête: J'ai une variable dont j'ai besoin dans plusieurs fichiers différents, et j'arrive soit à les inclure plusieurs fois (et le linker crie) , soit pas du tout (et donc le compilo crie)

Bon, je vais essayer de simplifier au maximum la struture des fichiers concernés; la liste des fichiers avec leurs includes et fonctions:

main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
#include "const.cpp"
int main () { 
   fctn();
}
const.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
#include "call.h"
unType mavar
int fctn () {
   // utilisation de mavar
}
call.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
#include "call.h"
int call::call_fctn () {
    // utilisation de mavar
}
call.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
namespace call {
   int call_fctn ();
}
Note: var est un objets d'une classe que je n'ai pas jugé utile de présenter ici.

Le Makefile quant à lui pourrai se résumer à:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
gcc -c call.cpp
gcc -lcall main.cpp -o exec.bin
Mais non. Les résultats auquels j'arrive sont ( en bougeant mavar de fichier en fichier ) soit mavar n'a pas été déclaré dans main.cpp, soit pas déclaré dans call.cpp, soit au moment de lier, dans main.cpp: mavar a déja été déclaré avant dans call.cpp

une idée ?

J'espere ne pas avoir trop simplifié le code et avoir fait disparaitre le probleme