questo è il codice dei vari file:

mate.h

codice:
class mate{
 	public:
 		void somma(int n,int m); 
};
mate.cpp

codice:
#include <iostream> 
#include "mate.h" 
using namespace std; 
void mate::somma(int n,int m){
 	cout<<"Somma= "<<n+m<<endl; 
}
main.cpp

codice:
#include <iostream>
 #include "mate.h" 
 using namespace std;
  int main(){ 	
mate m; 	
m.somma(2,3); 	
return 0; 
}
il tutto è stato scritto in un ambiente Ubuntu e compilato con il compilatore g++, ma ogni volta mi mostra il seguente errore:
main.o: In function `main':
/home/lorenzo/C++/main.cpp:8: undefined reference to `mate::somma(int, int)'
collect2: error: ld returned 1 exit status

Perchè?!?!?!?!