Forum: PC-Programmierung Problem beim Compilieren von usburn unter Mint


von Tom A. (tomt)


Lesenswert?

Hallo zusammen,

bei dem Versuch usburn unter Mint zu compilieren kommt folgende 
Fehlermeldung:

g++ usburn.c programmer_usb.c database.c hexfile.c calibration.c 
firmware.c test.c -m32 -I/usr/local/include -L. -lnsl -lm -lc 
-L/usr/local/lib -lusb  -o usburn
calibration.c: In function ‘int cal_step3()’:
calibration.c:104:63: warning: unknown conversion type character 0xa in 
format [-Wformat=]
  fprintf(stdout, "-- ULoad = %f V at PWM: %d % \n", Uhigh, pwm);
                                                               ^
/usr/bin/ld: cannot find -lusb
collect2: error: ld returned 1 exit status
make: *** [all] Fehler 1

In der Anleitung steht noch das folgende Biblitheken  benoetigt werden:

LSB 3.2        (standardmaessig vorhanden)
libnsl.so.1
libusb-0.1.so.4      (libusb)

diese hab ich dann mit Synaptik noch installiert, sowie alles was ich 
mit libusb für g++ gefunden hab.

Leider bleibt die Fehlermeldung ...

Hat jemand noch einen Tipp ?

Grüße,
Tom

: Verschoben durch User
von Peter II (Gast)


Lesenswert?

> fprintf(stdout, "-- ULoad = %f V at PWM: %d % \n", Uhigh, pwm);

er wird ein Problem mit dem letzten % haben.

teste mal mit:

fprintf(stdout, "-- ULoad = %f V at PWM: %d \% \n", Uhigh, pwm);

von Tom A. (tomt)


Lesenswert?

Hallo Peter,

das scheint nicht das Problem zu sein, die zu compilierende Source 
stammt nicht von mir: Beitrag "Problem beim compilieren von usburn unter Ubuntu"

Die USB Bibliothek scheint zu fehlen:

/usr/bin/ld: cannot find -lusb

Da find ich "nichts mehr was ich noch installieren könnte" ...


Grüße,

Tom

von Peter II (Gast)


Lesenswert?

Tom A. schrieb:
> Die USB Bibliothek scheint zu fehlen:
>
> /usr/bin/ld: cannot find -lusb

wobei das schon komisch aussieht, er müsste schreiben das er libusb.a 
nicht findet. Er versteht scheinbar den Parameter gar nicht richtig.

von Clemens L. (c_l)


Lesenswert?

Tom A. schrieb:
> fprintf(stdout, "-- ULoad = %f V at PWM: %d % \n", Uhigh, pwm);

Um mit *printf ein Prozentzeichen zu bekommen, muss %% in das Format.
Aber das ist eh' nur eine Warnung.

> /usr/bin/ld: cannot find -lusb

Du brauchst libusb-1.*-dev:
http://community.linuxmint.com/software/view/libusb-1.0-0-dev

: Bearbeitet durch User
von Tom A. (tomt)


Angehängte Dateien:

Lesenswert?

Vielen Dank euch schonmal für die prompte Hife !

Also das %% hab ich eingefügt und die libusb-1. nochmals installiert, 
war schon vorhanden, aber hätte ja sein können. das Ergebnis is im 
Anhang.
Leider blieb die Fehlermeldung wegen der Bibliothek gleich ...
Kann ich irgendwo sehen welche lib Datei wo sein muß ?

Grüße,

Tom

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ändere mal die Reihenfolge der Argumente des Linkers. Du gibst hier 
diverse Libraries an und setzt dann den Library-Suchpfad, und danach 
kommt erst das -lusb.
1
g++ usburn.c programmer_usb.c database.c hexfile.c calibration.c firmware.c test.c -m32 -I/usr/local/include -L. -lnsl -lm -lc -L/usr/local/lib -lusb -o usburn


Ändere das mal zu
1
g++ usburn.c programmer_usb.c database.c hexfile.c calibration.c firmware.c test.c -m32 -I/usr/local/include -L. -lnsl -lm -lc -lusb -L/usr/local/lib -o usburn

von Tom A. (tomt)


Lesenswert?

Die Reihenfolge war's nicht.

Was ich jetzt weggelassen habe ist das "-m32". Dann hat sich das 
fehlerfrei compilieren lassen.

Viiiiielen Dank an euch, jetzt "brennt es" unter Linux :D

Grüße,

Tom

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.