Forum: Compiler & IDEs wie baut man sich einen avr-gcc?


von Masl (Gast)


Lesenswert?

Hallo zusammen,

ich würde gerne unter LinuxMint 14 den aktuellen avr-gcc verwenden 
(4.8.1).
Allerdings habe ich keine Binärpakete gefunden, weswegen ich mir den 
Compiler selber bauen muss/möchte.

Ich bin wie in der gcc-Doku beschrieben vorgegangen, aber leider auf 
Probleme gestoßen.

Die gcc-Quellen liegen unter ~/gcc-4.8.1.
Da man als objdir kein Unterverzeichnis des srcdirs verwenden soll hab 
ich mir den Ordner ~/avr-gcc erstellt.

In diesen wechsle ich und führe von dort aus:
1
~/gcc-4.8.1/configure --target=avr --disable-nls --enable-languages=c --disable-libssp
Das Skript läuft ohne Fehler durch, danach kann ich make ausführen.
1
make

Auch make läuft fehlerfrei durch.
Allerdings ist danach der Ordner ~/avr-gcc leer.
Stattdessen hab ich unter ~/ eine Menge an neuen Ordnern, darunter 
"usr", "avr", "gcc" und noch einige mit irgendwelchen Librarynamen.

Nur, wo genau finde ich denn mein avr-gcc Binary?
Mache ich
1
avr-gcc --version
 erscheint weiterhin die Ausgabe der 4.7.0, also diejenige die ich über 
die Paketverwaltung installiert habe.
Aber auch ein direktes Starten des neuen avr-gcc unter Angabe des 
vollständigen Pfades ist nicht möglich, da, wie gesagt, ich das Binary 
nirgends finden kann.

Kann mir da jemand weiterhelfen?
Hab ich einen Schritt übersehen?

Viele Grüße,
Masl

von O. D. (odbs)


Lesenswert?

Die Dateien wurden einfach eine Verzeichnisebene zu hoch ausgegeben. 
Wahrscheinlich steck das Binary unter ~/usr/bin. Das ist natürlich nicht 
im Pfad, das musst du direkt aufrufen oder das andere Paket 
deinstallieren und deinen Pfad anpassen.

Deine Toolchain besteht nicht nur aus dem Binary, sondern auch aus den 
ganzen binary utils, den Include-Dateien, dem Linkerskript und natürlich 
den Bibliotheken. Da kommt einiges zusammen.

von Masl (Gast)


Lesenswert?

Unter ~/usr/bin liegt nur simulavr...

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


Lesenswert?

Masl schrieb:
> Da man als objdir kein Unterverzeichnis des srcdirs

Unterverzeichnis geht, nur direkt im Toplevel nicht.

von Bastler (Gast)


Lesenswert?

Ich hab das so wie hier gemacht:
http://www.nongnu.org/avr-libc/user-manual/install_tools.html
Und nachdem es soweit funktioniert hat, mit PREFIX /local/avr. Die "make 
install"'s brauchen dann aber sudo!

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Masl schrieb:

> ~/gcc-4.8.1/configure --target=avr --disable-nls --enable-languages=c
> --disable-libssp

Auf jeden Fall würde ich den Compiler und die Binutils in einen 
nicht-Standard-Pfad installieren, zumindest solange das Prozeder nicht 
100% klar ist und funktioniert, ansonsten installierst du den (u.U. 
nicht korrekt funktionierenden) Compiler in Systemverzeichnisse.

Ergo: Auf jeden Fall --prefix setzen! etwa 
--prefix=/home/ich/install/avr-gcc-4.8.1.  Für Binutils verwendet man 
sinnigerweise das gleiche --prefix, dito für  AVR-Libc. Das Prefix kann 
dann in PATH eingetragen werden oder man ruft den Compiler per absolutem 
Pfad auf.

> Das Skript läuft ohne Fehler durch, danach kann ich make ausführen.

Nach configure ist im Object-Verzeichnis ein Makefile.  Configure-Daten 
und ob die richtigen Binutils verwendet werden sieht man im config.log

> Auch make läuft fehlerfrei durch.
> Allerdings ist danach der Ordner ~/avr-gcc leer.

Seltsam.

Seltsam. Sicher, daß
> Stattdessen hab ich unter ~/ eine Menge an neuen Ordnern, darunter
> "usr", "avr", "gcc" und noch einige mit irgendwelchen Librarynamen.

Noch seltsamer ist das "usr".

> Nur, wo genau finde ich denn mein avr-gcc Binary?

Ich würd alles löschen und dann mit --prefix nochmals versuchen.  Das 
Binary steht nach "make install" in $PREFIX/bin/avr-gcc.  Bei einem Pfad 
z.B. im eigenen Home-Verzeichnis sind auck keine root-Rechte zum 
Installieren notwendig.

Jörg Wunsch schrieb:
> Masl schrieb:
>> Da man als objdir kein Unterverzeichnis des srcdirs
>
> Unterverzeichnis geht, nur direkt im Toplevel nicht.

Laut GCC Doku wird auch von Unterverzeichnisse des Quellbaums als 
Build-Verzeichnis dringend abgeraten.

von pst (Gast)


Lesenswert?

Meine Handnotizen vom letzten Wochenende:

---
cd gcc-4.8.1
mkdir build
cd build/
../configure --program-suffix=-4.8.1 --target=avr --with-gmp=/opt/local/ 
--disable-nls --disable-libssp --enable-languages=c,c++
make
make install
---

Danach war definitiv der neue gcc installiert... (Auf MacOS hat es noch 
ein paar Schritte mehr gebraucht, die fuer dich auf Linux nicht relevant 
sein duerften.)

von Rene H. (Gast)


Lesenswert?

Versuch es mal (als root) mit:

make install

Grüsse,
René

von Stephan B. (matrixstorm)


Lesenswert?

Masl schrieb:
> Allerdings habe ich keine Binärpakete gefunden, weswegen ich mir den
> Compiler selber bauen muss/möchte.

Hallo, hier findest du AVR-gcc binaries:
http://matrixstorm.com/avr/tinyusbboard/#asmorc_linux

MfG

von Stephan B. (matrixstorm)


Lesenswert?

Stephan B. schrieb:
> Hallo, hier findest du AVR-gcc binaries:
> http://matrixstorm.com/avr/tinyusbboard/#asmorc_linux

Ich habe nun auch binaries fuer den raspberry pi ergaenzt.

Fuer Testreports waere ich dankbar.

MfG Stephan

von Guest (Gast)


Lesenswert?

Der avr-gcc ist im Repo. Heisst gcc-avr. Dazu noch avr-libc installieren 
und gut is.

von Guest (Gast)


Lesenswert?

Achso gerade geguckt, joa, ist nicht die aller neueste Version, aber wer 
braucht die schon. Ist ja nicht openocd bei dem bestimmte Programmer 
(stlink v2!) erst ab 0.7 gehen.

von Oliver (Gast)


Lesenswert?

Guest schrieb:
> Achso gerade geguckt, joa, ist nicht die aller neueste Version, aber wer
> braucht die schon.

Derjenige, der weiß, warum er die braucht, der braucht die. Alle anderen 
brauchen die nicht.

Oliver

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.