why is it showing errors like ld returned 1 exit status and undefined reference to `powr(int, int)'
#include<stdio.h>
int powr (int m , int n );
int main (){
int i,m,n;
printf("print the base\n");
scanf("%d",&m);
printf("print the expoenent\n");
scanf("%d",&n);
int p ;
if (n == 1 ){
return m;
}
else {
p = powr(m,n/2);
if (n%2 ==0 ){
return p*p ;
}
else {
return p*p*m;
}
}
}