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