Bonsoir
J'ai un petit soucis de débutant avec g++.
Etant donné les quatre fichiers suivants:
1 - Fichier: a.hpp
2 - Fichier: a.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #ifndef a_hpp #define a_hpp namespace foo { void a();} #endif
3 - Fichier: b.hpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "a.hpp" #include <iostream> namespace foo { static const m = 100; void a() { std::cout << m << std::endl; } }
4 - Fichier: b.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #ifndef b_hpp #define b_hpp namespace foo { void b(); } #endif
La commande g++ -c a.cpp génère un a.o (parfait).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include "a.hpp" #include "b.hpp" #include <iostream> namespace foo { void b() { std::cout << m << std::endl; } }
Par contre quand je lance la commande g++ -c b.cpp le compilateur ne reconnait pas la variable m.
De ce fait ma question est double:
- pourquoi m n'est pas reconnue ?
- quelle commande g++ lancer pour pouvoir générer un b.o étant donné les fichiers précédent (sans changer le code) ?
Merci d'avance
Partager