En el compilador g++ como debía poner la opción -I para que me encuentre los ficheros h?? era algo como -I ,
es que trato de compilar unos ficheros y no me los encuentra, estoy porbando con
g++ -o prueba templ.cpp prueba.cpp -I .* pero no es asi
este es templ.h
#ifndef NUMERO
#define NUMERO
#include <iostream>
using namespace std;
template<typename T>
class Numero{
public:
Numero(T n);
T& getN();
private:
T n_;
};
#endif
este es templ.cpp
#include "templ.h"
template<typename T>
Numero<T>::Numero(T n):n_(n){};
template<typename T>
T& Numero<T>::getN(){ return n_;}
y este es prueba.cpp
#include "templ.h"
int main(){
Numero<int> n(5);
cout<<n.getN()<<endl;
}
Para que compile con esta orden g++ -o prueba templ.cpp prueba.cpp en prueba.cpp tengo que incluir el templ.cpp no el templ.h :-? pero si sincluyo el templ.h en prueba.cpp me dice ....referencia sin definir en main()
este es el error
/tmp/ccd5stS2.o: En la función `main':
prueba.cpp:(.text+0x15): referencia a `Numero<int>::Numero(int)' sin definir
prueba.cpp:(.text+0x21): referencia a `Numero<int>::getN()' sin definir
collect2: error: ld returned 1 exit status