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
const.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #include "const.cpp" int main () { fctn(); }
call.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.h
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 }
Note: var est un objets d'une classe que je n'ai pas jugé utile de présenter ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 namespace call { int call_fctn (); }
Le Makefile quant à lui pourrai se résumer à:
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 gcc -c call.cpp gcc -lcall main.cpp -o exec.bin
une idée ?
J'espere ne pas avoir trop simplifié le code et avoir fait disparaitre le probleme![]()
Partager