Salve ragazzi ho il seguente codice in C:

codice:
#include "Console.h"
#include "Albero.h"

int main(int argc, char *argv[])
{
    char choise;
    char continua;
    int *value;
    char *stringa;
    NODO *rootInteger = NULL;
    NODO *rootString = NULL;
    NODO *rootFloat = NULL;
    
    do
    {
        printf("MENU:\n\n");
        printf("[1]     Gestisci un albero di stringhe:\n");
        printf("[2]     Gestisci un albero di interi:\n");
        printf("[3]     Gestisci un albero di float:\n");
        //printf("[4]     Cancella un elemento nell'albero:\n");
        printf("[5]     Stampa BST:\n");
        
        choise = getch();
        
        switch(choise)
        {
            case '1':
                printf("Inserisci la stringa da inserire:\n");
                stringa = StringaArbitraria();
                rootString = BST_Insert(rootString, &CompareString, (void *)stringa );
                break;
                
            case '2':
                printf("Inserisci un intero da inserire:\n");
                InserisciDaTastiera(stringa, 50);
                value = (int *)malloc(sizeof(int)); // Alloco memoria per il puntatore all'intero
                *value = (int)stringa; // Forzo il valore di stringa (char *)
                rootInteger = BST_Insert(rootInteger, &CompareInteger, value);
                break;                
                
            /*case '4':
                if ( BSTIsEmpty(root) )
                    printf("Nessun elemento presente nell'albero!\n");
                else 
                {
                    printf("Inserisci la stringa da cancellare:\n");
                    value=StringaArbitraria();
                    root = BST_Delete(root, value);
                }
                break;    */            
                
            /*case '5':
                printf("STMPA DEL BST:\n");
                printf("[1].    Stampa l'albero di stringhe:\n");
                printf("[2].    Stampa l'albero di interi:\n");
                printf("[3].    Stampa l'albero di float:\n");
                
                choise = _getch();
                
                switch(choise)
                {
                    case '1':
                        // Stampo l'albero di stringhe
                        StampaAlbero(rootString, );
                        break;
                        
                    case '2':
                        // Stampo l'albero di interi
                        StampaAlbero(rootInteger, );
                        break;
                        
                    case '3':
                        // Stampo l'albero di float
                        StampaAlbero(rootFloat, );
                        break;    
                }
                break; 
        }*/
        }
        
        printf("Vuoi continuare s / n\n");
        continua = _getch();
        
    }while(continua != 's');    
    
  
  system("PAUSE");	
  return 0;
}
Quando compilo, mi dà il seguente errore:
codice:
  [Linker error] undefined reference to `StringaArbitraria' 
  [Linker error] undefined reference to `CompareString' 
  [Linker error] undefined reference to `InserisciDaTastiera' 
  [Linker error] undefined reference to `CompareInteger' 
  ld returned 1 exit status
Come posso risolvere?