Привет!
Пробую слинковаьб два файла:
// 1.cc:
template<class T>
void f (T);
// #include"2.cc"
int
main (void)
{
int i = 1;
f (i);
return 0;
}
и второй:
// 2юссЖ
template<class T>
void f(T tt) {};
[etv@pcf004]$ g++ 1.cc 2.cc -o test
/tmp/ccDmwGJP.o: In function `main':
/tmp/ccDmwGJP.o(.text+0x15): undefined reference to `void f<int>(int)'
collect2: ld returned 1 exit status
Если же я включаю определение 2.cc в 1.сс (убираю коментарий перед
#include) и не компилирую 2.сс, то все нормально:
[etv@pcf004]$ g++ 1.cc -o test
[etv@pcf004]$
Почему?
Спасибо!
Форум —
Development