Forum: PC-Programmierung libusb unter SuSE-Linux, Problem beim Linken


von Nils B. (nordlicht_nils)


Lesenswert?

Hallo liebe Leut,

ich habe vor, über USB zwischen PC und µC Daten auszutauschen. Daher 
habe ich die libusb-Pakete (v0.1.12) über Yast installiert und freudig 
festgestellt, dass die usb.h sowie die libusb-Bibliotheken in den 
jeweiligen Ordnern erscheinen.

Zum Test wollte ich das Testprogramm "testlibusb.c", das im Archiv auf 
der libusb-Homepage eingebunden ist, in KDevelop kompilieren und 
ausführen.

Allerdings bekomme ich beim Erstellen des Projekts folgende 
Fehlermeldungen:

testlibusbc.o: In function `main':
/home/nils/at91/Projects/testlibusb/testlibusbc/src/testlibusbc.c:136: 
undefined reference to `usb_init'
/home/nils/at91/Projects/testlibusb/testlibusbc/src/testlibusbc.c:138: 
undefined reference to `usb_find_busses'
/home/nils/at91/Projects/testlibusb/testlibusbc/src/testlibusbc.c:139: 
undefined reference to `usb_find_devices'
/home/nils/at91/Projects/testlibusb/testlibusbc/src/testlibusbc.c:141: 
undefined reference to `usb_busses'
collect2: ld returned 1 exit status

Die "usb.h" kennt er und findet er auch. Warum kennt er dann die o.g. 
Funktionen nicht?

Ist das ein Konfigurationsproblem von KDevelop (make und Konsorten) oder 
paßt etwas anderes nicht? Wer weiß hier Rat?

Vielen Dank! Nils

von Nils B. (nordlicht_nils)


Lesenswert?

Kurze Ergänzung:

Ein 'make testlibusb' in der Kommandozeile mit dem makefile aus dem 
libusb-Beispiel-Ordner bringt die gleichen Fehlermeldungen.

Auch die anderen Beisieldateien (u.a. auch cpp mit anderen libs) geben 
die Fehlermeldung undefined reference.

Wo muß ich noch was einstellen, welcher Pfad, welche Einstellung fehlt?

Danke.

von Bernhard (Gast)


Lesenswert?

Hi,

die Fehlermeldung kommt vom Linker.
Der Compiler findet die usb.h, aber der Lionker findet die funktionene 
dann nicht in einer library. Du mußt beim Linken die libusb mit angeben, 
z.B. mit
1
gcc .... -lusb

Wie sieht denn Dein Compileraufruf aus?

Gruß,
Bernhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.