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
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 ?"
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:
1 | CPATH= |
2 | |
3 | ifeq ($(GCC_VERSION),430) |
4 | CPATH = e:/WinAVR-20080512/bin/ |
5 | endif |
6 | ifeq ($(GCC_VERSION),422) |
7 | CPATH = e:/WinAVR-20071221/bin/ |
8 | endif |
9 | |
10 | CC = $(CPATH)avr-gcc -mmcu=$(MCU_TARGET) |
11 | 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.
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
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/bb896768.aspx 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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.