Forum: Compiler & IDEs (k)ubuntu 12.10, gcc und avr-gcc parallel installieren


von c. m. (Gast)


Lesenswert?

hallo zusammen,

ich habe den avr-gcc unter kubuntu installiert, möchte aber als c 
anfänger (x86) gcc zusätzlich installieren um "c zu üben".
geht das parallel, oder gibts da probleme?

unter meiner alten distribution, gentoo, war crossdev verbuggt, deshalb 
die frage.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Das sollte kein Problem sein, da alle zu AVR-GCC gehörigen Tools den
Prefix "avr-" haben und die Headerfiles und Libraries in einem eigenen
Verzeichnis abgelegt werden. Falls gcc und avr-gcc beide offizielle
kubuntu-Pakete sind, sollte es erst recht keine Konflikte geben.

Wenn man die Pakete selber geeignet baut, kann man sogar mehrere
AVR-GCC-Versionen parallel installieren. Ich habe bspw. sieben
verschiedene AVR-GCC- und eine x86-GCC-Version installiert :)

von c. m. (Gast)


Lesenswert?

Yalu X. schrieb:
> Falls gcc und avr-gcc beide offizielle
> kubuntu-Pakete sind, sollte es erst recht keine Konflikte geben.

ok, danke.
selbst wollte ich keine pakete kompilieren - ich will die tools nutzen 
und mich nicht damit rumärgern ;)

> Ich habe bspw. sieben
> verschiedene AVR-GCC- und eine x86-GCC-Version installiert :)

warum verschiedene avr-gcc's wenn ich mal fragen darf? gibts 
kompatibilitätsprobleme von einer version zur nächsten?

von Peter D. (peda)


Lesenswert?

Unter Windows kann man einfach die PATH-Variable auf das Verzeichnis der 
gewünschten Compilerinstallation setzen.

Man legt sich entsprechende Shortcuts auf den Desktop, die den PATH 
setzen, das Tool aufrufen und danach den alten PATH wieder restaurieren.
Da dieser PATH für die Task lokal ist, kann man sogar verschiedene 
Compiler gleichzeitig öffnen.
Die IDE muß allerdings mehrere Instanzen erlauben.

Unter Linux sollte ähnliches möglich sein.

von Yalu X. (yalu) (Moderator)


Lesenswert?

c. m. schrieb:
> warum verschiedene avr-gcc's wenn ich mal fragen darf?

Hauptsächlich aus Spaß und Interesse. Eine Zeit lang (so ab Version
4.3) hatte ich das Gefühl, dass die Optimierungsfähigkeiten im Vergleich
zu 4.2 immer mehr nachließen. Ich behielt deswegen den 4.2, installierte
aber zusätzlich neuere Versionen, um auch neuere AVRs programmieren zu
können, die vom 4.2 noch nicht unterstützt wurden. Zudem konnte ich so
leichter erkennen, wann die "Qualitätskurve" von der fallenden Phase
wieder in die steigende überging. Seit etwa 4.6 sind die Compiler meinem
Gefühl nach (das ist alles natürlich auch ein wenig subjektiv) wieder
richtig gut geworden¹. Die alten Versionen werde ich aber trotzdem nicht
löschen. Man kann sie noch gut dazu verwenden, um hier im Forum Anfragen
der Art "Ich habe ein problem mit AVR-GCC 4.x.x." zu beantworten ;-)

–––––––––––
¹) Das könnte damit zusammenhängen, dass seit einiger Zeit der hier im
   Forum wohlbekannte Johann (gjlayde) seine Finger im Spiel hat :)

von c. m. (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Unter Windows kann man einfach die PATH-Variable auf das Verzeichnis der
> gewünschten Compilerinstallation setzen.
>
> Unter Linux sollte ähnliches möglich sein.

so weit ich weiß (!) wird die compilerumgebung zumindest in meiner 
entwicklungsumgebung (netbeans) gesetzt.
nach den positiven "ja, geht" antworten bin ich jetzt grad dabei das 
ganze mal in einer vm aufzusetzen und zu schauen ob und wie das dann 
schlussendlich funktioniert… bevor ich das ganze auf das fertige system 
loslasse ;)

Yalu X. schrieb:
> Hauptsächlich aus Spaß und Interesse.

ok, klingt beruhigend. ich hab bisher nur blinkende led's auf einem 
atmega328 und ein wenig USART auf dem selben µc gemacht. gut zu wissen 
das ich mir erstmal keine sorgen machen muss bezüglich mehreren 
compilerversionen für verschiedene µc's.

von Andreas B. (andreas_b77)


Lesenswert?

Peter Dannegger schrieb:
> Unter Windows kann man einfach die PATH-Variable auf das Verzeichnis der
> gewünschten Compilerinstallation setzen.
>
> Man legt sich entsprechende Shortcuts auf den Desktop, die den PATH
> setzen, das Tool aufrufen und danach den alten PATH wieder restaurieren.

Solche Umstände sind unter Linux oder Unix-Systemen völlig unnötig. gcc 
unterstützt schon seit jeher die Parallelinstallation beliebig vieler 
Versionen und Zielarchitekturen.

Das Programm "gcc" ist nur ein Wrapper, der den eigentlichen gcc 
aufruft, und zwar die Default-Version für die Default-Architektur. Man 
kann aber jederzeit gezielt einen bestimmten Compiler einer gegebenen 
Version und Architektur mit entsprechendem Prefix (für die Architektur) 
und Postfix (für die Version) aufrufen.

Hier bei mir zum Beispiel ruft gcc etwa x86_64-linux-gnu-gcc-4.7 auf, 
direkt aufrufen kann ich aber auch arm-linux-gnueabi-gcc, 
arm-none-eabi-gcc-4.7.1, avr-gcc, avr-gcc-4.7.2, ... Auch die parallele 
Installation von Distributionspaketen und selbst übersetzten Toolchains 
in /usr/local funktioniert so einwandfrei.

Daher sieht man in Makefiles auch oft diese Variablen für die 
Konfiguration am Anfang:
1
CROSS_COMPILE :=
2
CC  := $(CROSS_COMPILE)gcc
3
CXX := $(CROSS_COMPILE)g++
4
AS  := $(CROSS_COMPILE)as
5
...
Dann muss man nur CROSS_COMPILE setzen und bekommt so die richtige 
Architektur dank des einheitlichen Namensschemas bei gcc und binutils.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Yalu X. schrieb:

> Seit etwa 4.6 sind die Compiler meinem
> Gefühl nach (das ist alles natürlich auch ein wenig subjektiv) wieder
> richtig gut geworden.
>
> Das könnte damit zusammenhängen, dass seit einiger Zeit der hier im
> Forum wohlbekannte Johann (gjlayde) seine Finger im Spiel hat :)

Für die 4.6 nicht, da ging es noch um das Beheben von "richtigen" Bugs, 
d.h. falscher Code etc.

AVR-spezifische Optimierungen gab es vor allem in der 4.7, was dann die 
erste Version war, die den guten alten 3.4.6 in der Codegröße schlagen 
konnte.

Die "einfachen" Optimierungen sind inzwischen so ziemlich alle 
abgegrast. Ob sich irgendjemand mal an den verbliebenen Bodensatz von 
schwierigen Optimierungen macht ist eher unwahrscheinlich...

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.