Bonjour !
Je programme en C++ sous Ubuntu.
J'ai plusieurs fichiers. Pour l'instant, j'ai deux objets :
une classe Vecteur.
une classe Matrices.
J'ai donc : Vecteur.cc, Vecteur.h, Matrices.cc, Matrices.h
J'ai considéré les matrices comme des vector < Vecteur >, c'est à dire un tableau d'elements de la classe Vecteur. Pour ce faire, j'ai dû évidemment inclure Vecteur.h dans Matrices.h, afin de déclarer ma classe.
J'ai donc : Vecteur.h inclu dans Matrices.h et Matrices.h inclu dans Matrices.cc
J'aimerais faire un testVecteur.cc qui me teste si la surcharge d'opérateurs, méthodes etc.. fonctionnent comme il faut.
Tous les fichiers séparement compilent comme il faut, il n'y a pas de soucis. Lorsque parcontre je veux faire "make" dans le terminal, afin de pouvoir exécuter mon testMatrices.cc, j'obtiens un message d'erreur style:
Matrices.cc:(.text+0xc4): undefined reference to `Vecteur::operator[](int const&) const'
etc...
En gros, j'ai l'impression qu'il capte pas où il doit aller pécher certaines informations (par exemple là, il reconnait pas une surcharge d'opérateurs dans le fichier Vecteur.h)
Voici mon makefile:
--------------------------------
all:testMatrices
Vecteur.o: Vecteur.cc Vecteur.h
g++ -c Vecteur.cc -o Vecteur.o
testMatrices: Matrices.o testMatrices.o
g++ Matrices.o testMatrices.o -o testMatrices
Matrices.o: Matrices.cc Matrices.h Vecteur.h
g++ -c Matrices.cc -o Matrices.o
testMatrices.o: testMatrices.cc Matrices.h
g++ -c testMatrices.cc -o testMatrices.o
--------------------------------
Qu'est-ce qui est faux ?
Merci d'avance,
Math
PS: J'ai bien des "Tab" pour les commandes.
