Probleme mit libusb unter Windows

Jiffy Space

Grünschnabel
Hallo,

ich versuche das Beispielprogramm unter http://svn.berlios.de/svnroot/repos/usbprog/trunk/simpleport/examples/ zu compilieren. Unter http://svn.berlios.de/svnroot/repos/usbprog/trunk/simpleport/lib liegt die nötige simpleport.a . Das klappt unter Linux auch alles wunderbar.

Unter Windows kriege ich das aber nicht hin. simpleport/lib habe ich für Windows übersetzt (so wie im Makefile unter http://svn.berlios.de/svnroot/repos/usbprog/trunk/simpleport/win32). Die DLL habe ich dann nach c:\windows kopiert.

MingW32-gcc mecker dann aber immer darüber, dass er die Funktionen aus der simpleport nicht finden kann:
H:\usbprog\simpleport\examples>c:\MinGW\bin\mingw32-gcc.exe -o example.exe example.o -L c:\Programme\LibUSB-Win32\lib\gcc -I ..\win32 -L c:\windows
example.o:example.c:(.text+0x37): undefined reference to `simpleport_open'
example.o:example.c:(.text+0x6b): undefined reference to `simpleport_set_direction'
example.o:example.c:(.text+0x93): undefined reference to `simpleport_set_port'
example.o:example.c:(.text+0x9f): undefined reference to `sleep'
example.o:example.c:(.text+0xba): undefined reference to `simpleport_set_port'
example.o:example.c:(.text+0xc6): undefined reference to `sleep'
example.o:example.c:(.text+0xe8): undefined reference to `simpleport_set_pin_dir
'
example.o:example.c:(.text+0x110): undefined reference to `simpleport_set_pin'
example.o:example.c:(.text+0x11c): undefined reference to `sleep'
example.o:example.c:(.text+0x137): undefined reference to `simpleport_set_pin'
example.o:example.c:(.text+0x143): undefined reference to `sleep'
example.o:example.c:(.text+0x18a): undefined reference to `simpleport_set_pin'
example.o:example.c:(.text+0x1a5): undefined reference to `simpleport_set_pin'
example.o:example.c:(.text+0x1c0): undefined reference to `simpleport_set_pin'
example.o:example.c:(.text+0x1db): undefined reference to `simpleport_set_pin'
example.o:example.c:(.text+0x1f6): undefined reference to `simpleport_set_pin'
example.o:example.c:(.text+0x22f): more undefined references to `simpleport_set_
pin' follow
example.o:example.c:(.text+0x2ba): undefined reference to `simpleport_close'


Was mache ich falsch?
 
Hallo,

du musst dem gcc auch noch klar machen gegen was du linken willst...

Versuchs mal so:

Code:
gcc.exe -o example.exe example.o -L c:\Programme\LibUSB-Win32\lib\gcc -I ..\win32 -L c:\windows -lsimpleport

Gruß,
RedWing
 
Ah, ok. Danke!

Das kann man getrost in die Kategorie "Man is der dämlich..." einstufen. Aber gut, wenn man vorher noch nie was mit C zu tun hatte...

Die ganzen undefined references für simpleport sind jetzt weg. Nun beschwert er sich aber noch über die undefined references in Sachen sleep. Fehlt da nun noch ein weiteres -l<xxx> ?
 
Was meinst du mit "in Sachen sleep"? Kannst du mal die konkrete Fehlermeldung posten?

//edit: Sorry, steht ja da.
Leider weiß ich jetzt aus dem Stehgreif nicht in welcher Bibliothek sleep enthalten ist. Evtl. musst du mal mit der Windowssuchfunktion im lib ordner deiner cygwin Installation nach sleep suchen und die entsprechende Lib dann zum Programm linken

//edit2: Ersetz cygwin Installation zu mingw Installation im oberen Text :)

Gruß,
RedWing
 
Zuletzt bearbeitet:
Danke für die Hilfe!

Ich hab nun rausgefunden, dass MingW da ein bischen komisch ist. Ich musste die Funktion sleep(1); einfach durch _sleep(1) ersetzen und nun läufts ohne Probleme.
 
Zurück