Forum: Compiler & IDEs AVR-GCC findet Device-Libs nicht


von N. G. (newgeneration) Benutzerseite


Lesenswert?

Hallo Forum,

ich habe mir heute das erste mal einen Compiler selbst gebaut.
Der avr-gcc funktioniert auch so weit: Version gibt etwas aus:
1
avr-gcc (GCC) 5.2.0
2
Copyright (C) 2015 Free Software Foundation, Inc.
3
This is free software; see the source for copying conditions.  There is NO
4
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
und der Compiler erzeugt auch das .s-file von meinem Code.
Nur der Linker beschwert sich:
1
CMD: avr-gcc -Os -mmcu=atmega328p -save-temps -DF_CPU=1000000UL -o main.o test.c 
2
/home/pi/compiler/avr-gcc/lib/gcc/avr/5.2.0/../../../../avr/bin/ld: cannot find crtatmega328p.o: Datei oder Verzeichnis nicht gefunden
3
/home/pi/compiler/avr-gcc/lib/gcc/avr/5.2.0/../../../../avr/bin/ld: cannot find -latmega328p
4
collect2: error: ld returned 1 exit status
Das ganze habe ich auf einem RPi B compiliert, also hoffe ich dass ich 
nicht nochmal den ganzen Compiler bauen muss, das hat nämlich über 8h 
gebraucht...

Zu den Versionen:
avr-libc-1.8.1, binutils-2.25, gcc-5.2.0
Gebaut wurde mit den Parametern nach Anleitung 
(http://www.nongnu.org/avr-libc/user-manual/install_tools.html)
Ich habe nur gedacht dass man den GCC nicht in einem Unterverzeichnis 
konfigurieren soll, deswegen habe ich es aus einem anderen Verzeichnis 
gemacht.

Wenn noch Infos fehlen liefere ich die gerne nach.

Wie kann man das Problem beheben? (Ich habe auch schon gegooglet, aber 
die Lösungen haben nie funktioniert... Vllt suche ich auch falsch)

mfG
N.G.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

N. G. schrieb:
> avr-libc-1.8.1

Zu alt AFAIR.  Nimm trunk.

von Bastler (Gast)


Lesenswert?

Wäre das nicht ein Grund die Versionsnummer der offiziellen avr-libc 
zumindest an der dritten Stelle zu inkrementieren ;-)
Auf gut deutsch: Jörg, wann kommt das ganz offiziell?

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Johann L. schrieb:
> N. G. schrieb:
>> avr-libc-1.8.1
>
> Zu alt AFAIR.  Nimm trunk.

Okay, dann probiere ich das mal.

Bastler schrieb:
> Wäre das nicht ein Grund die Versionsnummer der offiziellen avr-libc
> zumindest an der dritten Stelle zu inkrementieren ;-)

Wäre schön, ja ;)


Wie "deinstalliert" man eigentlich "richtig" die falsche avr-libc?
Damit ichs probieren kann, weil mMn ist einfach drüberkopieren nicht so 
perfekt, bzw fehlerträchtig...

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Prinzipiell, ja.

Alles Infos, die du brauchst, findest du in den Release-Notes von GCC. 
Die zu lesen ist nie eine schlechte Idee, insbesondere die "Caveats".

http://gcc.gnu.org/gcc-5/changes.html

: Bearbeitet durch User
von N. G. (newgeneration) Benutzerseite


Lesenswert?

Oh, ich hätte nicht gedacht, dass etwas AVR-spezifisches in den 
Release-Notes vom GCC drin steht, auch wenn ichs mir hätte denken 
können.

Danke schon mal

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

N. G. schrieb:
> Wie "deinstalliert" man eigentlich "richtig" die falsche avr-libc?

Als normaler Anwender kann man natürlich nur in deinem HOME oder TMP 
o.ä. installieren.  Wenn da was falsch installiert wurde:  Verzeichnis 
komplett löschen und für Binutis, GCC und AVR-Libc nochma "make 
install".

Und Admin ergibt sich das Problem nicht, da Admins wissen was sie tun 
:-)

N. G. schrieb:
> Oh, ich hätte nicht gedacht, dass etwas AVR-spezifisches in den
> Release-Notes vom GCC drin steht,

Wenn ich solche Dinge dokumentiere, dann verstecke ich sie gemeinerweise 
an Orten, wo die Anwender niemals danach suchen werden: Release Notes 
und / oder Doku.  Es gibt keine besseren Verstecke!

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Okay, danke, das mache ich gerade, nur der Pi ist sogar hier extrem 
langsam... ;)

Johann L. schrieb:
> Es gibt keine besseren Verstecke!

Tja, Asche auf mein Haupt...
Ich dachte nur da der GCC so ein großes Projekt ist... Aber egal, mein 
Fehler, werde ab jetzt öfter mal einen Blick drauf werfen ;)

von Paul B. (paul_baumann)


Lesenswert?

Johann L. schrieb:
> Nimm trunk.

Trunk ist bei der Witterung immer gut.

MfG Paul

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Ich bins nochmal,

ich habe mir jetzt die aktuellen Files aus trunk geholt und wollte diese 
wie unter INSTALL vermerkt installieren, aber schon configure scheitert 
daran, dass es configure nicht gibt, ebensoweinig wie config.guess
Ich habe testweise die trunk-files über die aus der 1.8.1-libc kopiert 
und wollte dann das configure laufen lassen, nur es werden Fehler 
gemeldet (irgendwas mit automake bzw aclocal-1.14 das nicht gefunden 
wird, ich habe auch nur 1.15 installiert)

Bevor ich mir jetzt den Nachmittag damit verschwende herauszufinden wir 
man den trunk-Zweig baut wollte ich einfach mal fragen

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

bootstrap ausführen?

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Oh, ja
Warum bin ich nicht gleich darauf gekommen?
Ich führe nur nicht gerne Dateien aus die ich nicht kenne bzw dessen 
Funktion ich nicht kenne.
Funktioniert aber
Danke ;)

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Okay, der RPi hat bis jetzt kompiliert. Aber nach einem kurzen Test kann 
ich sagen: es funktioniert.
Ein großes Danke

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

N. G. schrieb:
> Ich führe nur nicht gerne Dateien aus die ich nicht kenne bzw dessen
> Funktion ich nicht kenne.

bootstrap oder autogen.sh sind die üblichen Namen für den Shellscript,
der autoconf und automake in der passenden Reihenfolge aufruft.

Da es Shellscripte sind, kannst du auch problemlos reinschauen, was
sie tun. ;-)

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Jörg W. schrieb:
> Da es Shellscripte sind, kannst du auch problemlos reinschauen, was
> sie tun. ;-)

Hat nichts mit misstrauen zu tun, sondern eher mit Unwissenheit. Bin 
noch relativ neu in der ganzen Geschichte. Aber danke für deine 
Erklärung ;)

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.