www.mikrocontroller.net

Forum: GCC Mehrere Versionen der Toolchain vorhalten ?

Autor: Stefan Sczekalla (Gast)
Datum: 01.07.2008 17:52

Hi,

welches ist der beste ( vernünftigste ) Weg, wie man unter XP mehrere
Versionen der (Win-) Avr Toolchain "vorhalten" kann ?

Vieleicht VM's ( XP - Linux ) ?

Ich möchte ungern die "alte" von 2006 "platt" machen um die älteren
Projekte ohne Anpassung des Source-Codes weiter kompilieren zu können.

Viele Grüße,

Stefan
Autor: Ernst Bachmann (ernst)
Datum: 01.07.2008 18:05

Hier hat PeDa ein Script zum automatisierten Umbenennen der
Installationsverzeichnisse gepostet:
Beitrag "Automatisierte Umschaltung zwischen GCC Versionen"
Vielleicht hilft das ja.

Und hier hast du dieselbe Frage vor zwei Jahren schonmal gestellt, aber
keine Hilfreiche Antwort bekommen :)
Beitrag "Koexistenz mehrerer WinAVR  Versionen ?"
Autor: Johann L. (gjlayde) Benutzerseite
Datum: 01.07.2008 18:30

Wo ist denn das Problem?

Anstatt im Aufruf avr-gcc zu schreiben, gibt man eben den absoluten Pfad
zum avr-gcc an. Bei make: Viele Makefiles verwenden/setzen die Variable
CC für den C-Compiler, welche man überschreiben kann. Einfach mal nen
Blick ins Makefile wagen, und make starten mit

make CC=pfad-zum-gcc/avr-gcc

Bei der Installation von WinAVR wird eh net mehr gemacht, als das
Installationsverzeichnis zum Path hinzuzufügen, d.h. in Path kommt

<INSTALL-DIR>/bin und <INSTALL-DIR>/utils/bin

hinzu, und was vorne steht, wird eben zuerst gefunden.

Ich hab's im (selbst geschriebenen) Makefile so gelöst:
CPATH=

ifeq ($(GCC_VERSION),430)
    CPATH       = e:/WinAVR-20080512/bin/
endif    
ifeq ($(GCC_VERSION),422)
    CPATH       = e:/WinAVR-20071221/bin/
endif 

CC             = $(CPATH)avr-gcc -mmcu=$(MCU_TARGET)
LD             = $(CC)

Wenn GCC_VERSION undefiniert ist, wird die Standard-Installation
genommen, und wenn GCC_VERSION=430 ist eben der gcc 4.3.0. So kann man
dann auch die CFLAGS anpassen.
Autor: Stefan Sczekalla (Gast)
Datum: 01.07.2008 19:58

Arghh - ich bin ja so Betriebsblind.

Das Umbennen des WINAVR-Verzeichnises habe ich garnicht ins Auge gefasst
- weil ich garnicht damit gerechnet hab das das hinreichend sein könnte.
( ... bin ein wenig verdorben durch die ganze Windows-Software die bei
installationen gigabytes an zueinander inkompatiblen DLL's in einem
System verteilen )

Ich probiere es mal auf dem Wege des Umbenennens...

Grüße,

Stefan
Autor: Dirk (Gast)
Datum: 02.07.2008 08:38

Unter XP und mit NTFS File-System geht es auch ganz einfach:

Installiere die WinAvr's in verschiedene Verzeichnisse:

c:\WinAVR-20060421
c:\WinAVR-20070525
c:\WinAVR-20080610

Mit dem Befehl junction erzeugst du einen (nur mit NTFS verwendbaren)
Hardlink, also ala Linux.

http://technet.microsoft.com/de-de/sysinternals/bb...

Dann verwendest du verschiedene Batches

a) winavr-2006421.bat

junction -d c:\WinAVR
junction c:\WinAVR c:\WinAVR-20060421

b)WinAVR-20070525.bat

junction -d c:\WinAVR
junction c:\WinAVR c:\WinAVR-20070525

c) ...

In deinen makefiles verwendest du nur C:\Winavr oder verwendest
die globale path-Variable.
Autor: Ernst Bachmann (ernst)
Datum: 02.07.2008 10:37

Und natürlich nach jedem Umschalten ein "make clean" nicht vergessen,
sonst linkst du evtl Object-Files zusammen, die von verschiedenen
Compilerversionen generiert wurden.
Das funktioniert zwar im Allgemeinen, kann aber auch recht seltsame
Effekte ergeben.

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net