关于c++中函数模板的重载问题

直接上代码(简单),
enter code here
template< class T >
void test(T x){
cout<<x<<endl;
}

void test(int);

int main(){
int x = 1;
test(x);
}

上述程序使用非模板函数对函数模板test进行重载:按照书中的说法-这个非模板函数可以只声明原型,然后借用模板中定义的函数体。
但是链接的时候找不到那个非模板函数的定义(使用的VS208)。求解?

要用模板中定义的函数体,还声明非模板函数干什么?