Ho scritto questo codice, mi viene segnalato un linker error..non risco a capirne il motivo, mi aiutereste?

L'errore completo del compilatore è:

[Linker error] undefined reference to `occo(int, char*, int)'
ld returned 1 exit status

codice:
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int occo(int,char s[],int);

int main(){
    
    char riga[100],c;
    int n=20,occorrenze=0;
    
    cout<<"Inserisci il carattere di cui vuoi conoscere le occorrenze: ";
    cin>>c;
    
    ifstream file;
    
    //Apro il file in modalità sola lettura
    file.open("file.txt",ios::in|ios::binary);
    
    if (!file) { 
     cerr<<"Non si puo' aprire il file"<<endl;
     system("pause");
     return -1;
   }

  char ch; int i=0;
   while (file.get(ch))  {
     riga[i]=ch;
     cout<<riga[i];
     i++;
     cout<<"\n"<<i;
} 
    
    cout<<occo(i-1,riga,c);
    
    file.close();
    
    system("pause");
    return 0;
    
}

int occo(int n,char s[],char c){
     
     if(n<0) return 0;
     else{
          if(s[n]==c) return occo(n-1,s,c)+1;
          else return occo(n-1,s,c);
          }
 }

Grazie mille