Hallo allerseits, ich habe versucht, einen Treiber für das xilinx webpack zu compilieren. Das hatte Folgen: rfr@linux-6e93:~/Downloads/usb-driver-HEAD-2d19c7c> make cc -Wall -fPIC -DUSB_DRIVER_VERSION="\"2011-12-12 16:47:45\"" usb-driver.c xpcu.c parport.c config.c jtagmon.c -o libusb-driver.so -ldl -lusb -lpthread -shared xpcu.c:6:17: fatal error: usb.h: Datei oder Verzeichnis nicht gefunden compilation terminated. parport.c: In function ‘parport_transfer’: parport.c:21:23: warning: variable ‘last_pp_write’ set but not used [-Wunused-but-set-variable] make: *** [libusb-driver.so] Fehler 1 rfr@linux-6e93:~/Downloads/usb-driver-HEAD-2d19c7c> Was will mir das sagen, und was tue ich dagegen, das das nicht läuft? System Suse 12.2 Xilinx webPack 14.2 lin Gruss Robert
R. Freitag schrieb: > xpcu.c:6:17: fatal error: usb.h: Datei oder Verzeichnis nicht gefunden Lesen. Was steht da?
> Was will mir das sagen, und was tue ich dagegen, das das nicht läuft?
libusb-devel installiert?
Rufus Τ. Firefly schrieb: > Lesen. Was steht da? Da steht, dass die usb.h nicht gefunden wurde. Das ist aber klar, denn sie soll ja installiert werden. Oder habe ich jetzt was nicht verstanden? <libusb-devel installiert? keine Ahnung, ich seh mal nach... libusb-1_0-devel - USB Library ist als installiert markiert. Gruss Robert
R. Freitag schrieb: > Das ist aber klar, denn > sie soll ja installiert werden. Von "installieren" ist in Deinem Beitrag keine Rede, Du beschreibst da nur einen Versuch, etwas zu kompilieren. Und das geht nicht, weil eben jene Datei nicht gefunden wird, was daran liegen kann, daß sie nicht da ist oder daß sie nicht dort ist, wo nach ihr gesucht wird.
Aha. Das mag sein, ich habe aber damit gerechnet, dass diese Datei da ist. Die USBlib s sind installiert, der usp-prog funktioniert auch, es scheint also alles ok zu sein. Wo sollte die fehlende Funktion denn stehen? Gruss Robert
Fehlende Funktion? Fehlende Datei meinst Du. Keine Ahnung, wo die sein soll, aber Du könntest ja mal auf Deiner Festplatte nachsehen, ob es nicht versehentlich doch irgendwo eine gibt - und deren Speicherort in den Include-Pfad aufnehmen.
Dann such mal nach der Datei usb.h. Z.b. mit
1 | find / -name usb.h |
(eventuell mit sudo, je nach Linuxvariante). Dann hast Du einen Anhaltspunkt weiter zu suchen. Entweder ist die Lib nicht installiert oder wenn sie vorhanden ist sind es fehlerhafte Einstellungen entweder im Environment oder im Makefile. Das der usbprog funktioniert hat nichts damit zu tun ob die Libs die zum compilieren notwendig sind da sind oder nicht. Gruss Tosa
-rw-r--r-- 1 root root 65811 26. Sep 19:05 usb.h steht in rfr@linux-6e93:/usr/src/linux/include/linux> Gruss Robert
Tja, und warum findet Dein Compiler die Datei dann nicht? Hast Du Dir mal den Include-Pfad angesehen, der verwendet wird?
Ich habe find - name ausgeführt und erhalte: ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/p54/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/prism2/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/video/go7007 /usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/mouse/synapt ics/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/orinoco/usb. h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/line6/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/at76c50x/usb .h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/libertas/usb .h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/libertas/thi nfirm/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/joystick/ifo rce/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/ft1000/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/can/ems/usb. h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/can/peak/usb .h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/caif/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/dvb/b2c2/fle xcop/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/dvb/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/drm/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/ath6kl/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/wimax/i2400m /usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/rt2x00/lib/u sb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/snd/usb.h ./usr/src/linux-3.4.11-2.16-obj/i386/desktop/include/config/i2c/tiny/usb .h ./usr/src/linux-3.4.11-2.16/arch/mips/include/asm/mach-pnx8550/usb.h ./usr/src/linux-3.4.11-2.16/include/linux/usb.h Gruss Robert
Rufus Τ. Firefly schrieb: > Tja, und warum findet Dein Compiler die Datei dann nicht? Hast Du Dir > mal den Include-Pfad angesehen, der verwendet wird? Wieso ist das relevant? Der includepfad dient nur dazu, einen Suchpfad für Anwendungen zu suchen, die vom User gestartet werden. Typischerweise alles, was aus /home angeschoben wird. Gruss Robert
Ich hab gerade mal in einem meiner alten Projekte geschaut die libusb verwenden. Dort inkludiere ich libusb.h und nicht usb.h. usb.h kommt glaube ich aus dem Linuxkernel und nicht aus libusb.
Thomas S. schrieb: > Ich hab gerade mal in einem meiner alten Projekte geschaut die libusb > verwenden. Dort inkludiere ich libusb.h und nicht usb.h. > usb.h kommt glaube ich aus dem Linuxkernel und nicht aus libusb. Koffer? Bahnhof? Also, ich bin kein Experte in diesen Dingen, eher das Gegenteil. Gruss Robert
> usb.h kommt glaube ich aus dem Linuxkernel und nicht aus libusb. In Debian und SuSe gibts eine /usr/include/usb.h aus der libusb-dev (Debian [0]) bzw. libusb-devel (SuSe [1]). Im Kernel gibts auch stapelweise usb.h. Ändert aber nix daran, dass beim TO offenkundig irgendwas(tm) mit den Suchpfaden nicht stimmt. Vielleicht mag selbiger selbige ja mal prüfen oder zum prüfen rausrücken. HTH und nix für ungut. [0] http://packages.debian.org/wheezy/amd64/libusb-dev/filelist [1] http://fr2.rpmfind.net/linux/rpm2html/search.php?query=%2Fusr%2Finclude%2Fusb.h
So, ich hoffe, der untenstehenden text gibt Auskunft, falls noch was fehlt, bitte melden. rfr@linux-6e93:~> echo $PATH$ /home/rfr/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/ usr/games:/opt/kde3/bin:/opt/cross/bin$ rfr@linux-6e93:~> rfr@linux-6e93:~> su - Passwort: linux-6e93:~ # echo $PATH$ /sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/ usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/opt/cross/bin$ linux-6e93:~ #
Nachtrag: stelle fest in SuSe 12.2 ist die usb.h augenscheinlich in die libusb-compat-devel umgezogen..
g457 schrieb: > Nachtrag: stelle fest in SuSe 12.2 ist die usb.h augenscheinlich in die > libusb-compat-devel umgezogen.. Habe ich mal installiert. Und das Makefile ausführen lassen. Und sieh an: make cc -Wall -fPIC -DUSB_DRIVER_VERSION="\"2011-12-12 16:47:45\"" usb-driver.c xpcu.c parport.c config.c jtagmon.c -o libusb-driver.so -ldl -lusb -lpthread -shared parport.c: In function ‘parport_transfer’: parport.c:21:23: warning: variable ‘last_pp_write’ set but not used [-Wunused-but-set-variable] cc -DDEBUG -Wall -fPIC -DUSB_DRIVER_VERSION="\"2011-12-12 16:47:45\"" usb-driver.c xpcu.c parport.c config.c jtagmon.c -o libusb-driver-DEBUG.so -ldl -lusb -lpthread -shared nix fehler!! :-)) Vielen Dank... und frohe Weihnachten Robert
Für so wenig AShnung wie ich habe, war das eine gute Leistung. Wo liest man sowas eigentlich nach?
> nix fehler!! Freut mich :-) > echo $PATH$ ^ Mit den 'Suchpfaden' waren übrigens die 'Include-Suchpfade' gemeint. Das sind im Wesentlichen - Compilezeit-Defaults der Toolchain [0] (i.d.R. uninteressant falls die Toolchain aus der Distribution stammt) - Umgebungsvariablen [1] - das was das Makefile zusammenbastelt und als CLI-Parameter mitgibt [0] Und noch ne kleine Erbsenzählerweltverbessererweisheit: das abschließende '$' brauchts in bash/dash/sh/.. nicht, der Variablenname endet automagisch vor dem ersten nicht für Variablennamen zulässigen Zeichen (im Gegensatz zu Windows/cmd wo Variablen in '%' einzuschließen sind). [0] http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html [1] http://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.