Funktion aus ext. object-Datei wird nicht erkannt



  • Moin,
    Ich habe in utils.cc eine funktion getNormalWert(..), ferner zwei Programme a.cc und b.cc, die beide getNormalWert(..) aufrufen.
    Programm a läst sich "maken", während make b diesen Fehler meldet.

    b.o(.text+0x9015): undefined reference to `getNormalWert(basic_string<char, string_char_traits<char>,...., int)'
    

    Die HeaderDatei utils.h ist bei beiden eingebunden.
    Kopiere ich getNormalWert() in den source von b.cc, dann geht logischerweise.
    Ich finde keine Lösung, warum es nciht klappt???



  • Stimmt dein Linkeraufruf? Poste mal dein Makefile...





  • Zwischendank: antowrte erst so spät, weil ich kurz mal 250 Km hinter mich bringen musste.
    Makefile für Program a ( das fuunktioniert ):

    einzelbefund: einzelbefund.o dbase.o mystrings.o labor_utils.o einzelbefund.mak
            g++  einzelbefund.o dbase.o mystrings.o labor_utils.o  -oeinzelbefund
    
    mystrings.o: mystrings.cc mystrings.hh
            g++ -c -Wall mystrings.cc
    
    labor_utils.o: labor_utils.cc labor_utils.hh
            g++ -c -Wall labor_utils.cc
    
    dbase.o: dbase.cc dbase.hh
            g++ -c -Wall dbase.cc
    
    einzelbefund.o: dbase.hh einzelbefund.cc
            g++ -c -Wall einzelbefund.cc
    

    Makefile für Programm b ( findet Funktionen in labor_utils nicht)

    laboranfrage: laboranfrage.o dbase.o mystrings.o laboranfrage.mak dbase.hh
            g++  laboranfrage.o dbase.o mystrings.o  -olaboranfrage
            cp   laboranfrage /home/www/labor/docs/cgi-bin/
            chmod 755 /home/www/labor/docs/cgi-bin/laboranfrage
    
    mystrings.o: mystrings.cc mystrings.hh
            g++ -c -Wall mystrings.cc
    
    dbase.o: dbase.cc dbase.hh
            g++ -c -Wall dbase.cc
    
    laboranfrage.o: dbase.hh laboranfrage.cc
            g++ -c -Wall laboranfrage.cc
    

    dannach sollte es doch klappen, was es auch getan hatte, als ich "getNormalWert" ( in labor_utils.cc ) noch nciht benutzt habe.

    hier noich die labor_utils.hh, die in beiden ".cc" steht:

    int isNormal ( string cGemessen,string cNormaltext  );
    int AlterInTagen ( string datum_Alt, string datum_Neu ) ;
    void writeLogFile(string cRemoteAdr,string cText);
    string getNormalWert (string cAssay, string blutDatum, string cSex, int blutTage) ;
    

    Es werden "AlterInTagen(..)" und "getNortnalWert(..) bemängelt


Anmelden zum Antworten