undefined reference to error



  • Hi zusammen,

    versuche gerade an meinem Ubuntu-PC eine Auslesesoftware für ein Ampere-Meter zu schreiben. Leider hab ich direkt am Anfang schon ein Problem beim Deklarieren eines Objekts einer mir gegebenen Klasse.

    Der zugehörige Code ist (Strommessung.cpp):

    #include <iostream>
    #include <fstream>
    #include </home/sipm02/include/liblab/rs232/linux_rs232.h>
    #include </home/sipm02/Desktop/Strommessung/KEITHLEY_SourceMeter_2400.h>
    #include <string>
    #include <iomanip>
    
    using namespace std;
    char _Sourcemeter_port[] = "/dev/ttyUSB0";
    
    int main()
    {
    	linux_rs232 com_Sourcemeter(_Sourcemeter_port);
    	return 0;
    
    }
    

    Beim Ausführen von g++ Strommessung.cpp -o Strommessung bekomme ich dann den Fehler

    /tmp/ccnEMC0C.o: In function `main':
    Strommessung.cpp:(.text+0x4c): undefined reference to `linux_rs232::linux_rs232(char const*, int)'
    

    Der Pfad zu linux_rs232.h ist auf jeden Fall richtig.
    Woran kann das liegen?

    Danke schon mal im Voraus.
    Grüße,
    Nerolein



  • Du musst noch gegen die Bibliothek linken.

    Schau mal das Directory home/sipm02/include/liblab/rs232/ an, da muss irgendwo eine lib.a rumliegen (irgend ein File mit Endung .a oder .so). Dann gibst du dem Compiler den flag -l<datei> an, damit er dagegen linkt.



  • Hi,

    Danke für die schnelle Antwort, aber in dem Ordner ist weder eine .so noch eine .a Datei. Kann das sein?

    Grüße,
    Nerolein



  • So ich habe die Datei gefunden, allerdings in einem ganz anderen Ordner. Wenn ich jetzt versuche zu kompilieren funktioniert soweit alles nur ld meckert:

    sipm02@lx3bsipm02:~/Desktop/Strommessung$ g++ Strommessung.cpp -o Strommessung -l /home/sipm02/lib/liblab.so
    /usr/bin/ld: cannot find -l/home/sipm02/lib/liblab.so
    collect2: ld gab 1 als Ende-Status zurück
    

    Warum? Der Pfad ist auf jeden Fall richtig...

    Grüße,
    Nerolein



  • Wie sieht's damit aus:

    g++ Strommessung.cpp -o Strommessung -L/home/sipm02/lib/ -llab
    


  • Danke das versuch ich Montag mal, wenn ich wieder an den PC ran komme.

    Wirklich toller Support hier! Danke.

    Grüße
    Nerolein



  • Danke hat funktioniert 🙂


Anmelden zum Antworten