función error de compilación de especialización de plantilla

##A.hh

template<class T> void func(T t) {}
template<> void func<int>(int t) {}

void func2();

##A.cpp

void func2() {}

##main.cpp

func("hello");
func(int());

El error que obtengo es: error LNK2005: "void __cdecl func (int)" (?? $ func @ H @@ YAXH @ Z) ya definido en A.obj, se encontraron uno o más símbolos de definición múltiple

¿Es una especialización de plantilla de función no tratada como una plantilla de función normal? Parece que estará en el archivo objetivo para A.

Respuestas a la pregunta(2)

Su respuesta a la pregunta