Forum: PC Hard- und Software Fehlermeldung beim Kompilieren


von R. F. (rfr)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

R. Freitag schrieb:
> xpcu.c:6:17: fatal error: usb.h: Datei oder Verzeichnis nicht gefunden

Lesen. Was steht da?

von g457 (Gast)


Lesenswert?

> Was will mir das sagen, und was tue ich dagegen, das das nicht läuft?

libusb-devel installiert?

von R. F. (rfr)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von R. F. (rfr)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Thomas S. (tosa)


Lesenswert?

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

von R. F. (rfr)


Lesenswert?

-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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tja, und warum findet Dein Compiler die Datei dann nicht? Hast Du Dir 
mal den Include-Pfad angesehen, der verwendet wird?

von R. F. (rfr)


Lesenswert?

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

von R. F. (rfr)


Lesenswert?

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

von Thomas S. (tosa)


Lesenswert?

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.

von R. F. (rfr)


Lesenswert?

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

von g457 (Gast)


Lesenswert?

> 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

von R. F. (rfr)


Lesenswert?

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:~ #

von g457 (Gast)


Lesenswert?

Nachtrag: stelle fest in SuSe 12.2 ist die usb.h augenscheinlich in die 
libusb-compat-devel umgezogen..

von R. F. (rfr)


Lesenswert?

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

von Thomas S. (tosa)


Lesenswert?

@g457

Respekt :-)

von R. F. (rfr)


Lesenswert?

Für so wenig AShnung wie ich habe, war das eine gute Leistung.

Wo liest man sowas eigentlich nach?

von g457 (Gast)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.