Windows 11, AVR-GCC: Pfade setzen

#7415790
Lesenswert?

Guten Abend,

diese toolchain habe ich auf ein Windows 11 Notebook geladen und ausgepackt:

https://blog.zakkemble.net/avr-gcc-builds/

Verzeichnisstruktur:

1
17/05/2023  19:03    <DIR>          .
2
17/05/2023  06:10    <DIR>          ..
3
17/05/2023  19:03    <DIR>          avr
4
17/05/2023  19:03    <DIR>          bin
5
17/05/2023  19:03    <DIR>          include
6
17/05/2023  19:03    <DIR>          lib
7
17/05/2023  19:03    <DIR>          libexec
8
17/05/2023  06:08               253 README.txt
9
17/05/2023  19:03    <DIR>          share
10
               1 File(s)            253 bytes
11
               8 Dir(s)  84,776,759,296 bytes free

Ein (fehlgeschlagener) Aufruf von make:

1
avr-gcc -O -g -Wall -ffreestanding -mmcu=atmega128   -c -o twitest.o twitest.c
2
avr-gcc: fatal error: cannot read spec file 'device-specs/specs-atmega128': No such file or directory
3
compilation terminated.
4
make: *** [<builtin>: twitest.o] Error 1

Makefile:

1
#
2
# $Id$
3
#
4
CC= avr-gcc
5
#MCU=atmega8
6
#MCU=atmega16
7
#MCU=atmega32
8
#MCU=atmega163
9
#MCU=atmega323
10
MCU=atmega128
11

12
CFLAGS=  -O -g -Wall -ffreestanding -mmcu=$(MCU)
13
.SUFFIXES: .s .bin .out .hex .srec
14
.c.s:
15
  $(CC) $(CFLAGS) -S $<
16
.S.o:
17
  $(CC) $(ASFLAGS) -c $<
18
.o.out:
19
  $(CC) $(CFLAGS) -o $@ $<
20
.out.bin:
21
  avr-objcopy -O binary $< $@
22
.out.hex:
23
  avr-objcopy -O ihex $< $@
24
.out.srec:
25
  avr-objcopy -O srec $< $@
26
all:  twitest.bin
27
OBJS=twitest.o
28
twitest.out: $(OBJS)
29
  $(CC) -o twitest.out $(CFLAGS) $(LDFLAGS) $(OBJS) $(LDLIBS)
30
clean:
31
  rm -f *~ *.out *.bin *.hex *.srec *.s *.o *.pdf *core

Wie und wo müssen die Pfade eingerichtet werden, damit make alles findet, was zum Compilieren und Linken gehört?

Mit freundlichen Grüßen

Markus

#7416000
Lesenswert?

Die Option habe ich im makefile hinzugefügt.

Hier die Ausgabe:

1
avr-gcc -v -O -g -Wall -ffreestanding -mmcu=atmega128   -c -o twitest.o twitest.c
2
Using built-in specs.
3
Reading specs from device-specs/specs-atmega128
4
avr-gcc: fatal error: cannot read spec file 'device-specs/specs-atmega128': No such file or directory
5
compilation terminated.
6
make: *** [<builtin>: twitest.o] Error 1
Persönliche Seite #7416039
Lesenswert?

hmmm, kann sein dass Windows irgendwas komisches mit den Pfaden macht?

Im Installationsverzeichnis sollte es Dateien geben wie

1
lib/gcc/avr/<version>/device-specs/specs-atmega128

wobei <version> die Version des Compilers ist, für den Download wohl 12.1.0.

Auf jeden Fall würde ich sicherstellen, dass Pfade keine Sonderzeichen oder Leerzeichen enthalten.

#7416204
Lesenswert?

So legen Sie Pfade für AVR-GCC in Windows 11 fest:

1.Öffnen Sie die Systemeinstellungen von Windows 11. 2.Navigieren Sie zu „Erweiterte Systemeinstellungen“ und klicken Sie darauf. 3.Klicken Sie in den erweiterten Systemeigenschaften auf „Umgebungsvariablen“. 4.Fügen Sie Benutzervariablen für benutzerdefinierte Pfade und Systemvariablen für systemweite Pfade hinzu oder bearbeiten Sie sie. 5.Stellen Sie sicher, dass Sie die richtigen Pfade für AVR-GCC festlegen, einschließlich des Compilers, der Header-Dateien und der Bibliotheken. 6.Klicken Sie auf „OK“, um die Änderungen zu speichern.

Durch die korrekte Einstellung der Pfade stellen Sie sicher, dass Ihr System die notwendigen Ressourcen für AVR-GCC finden kann. Beachten Sie, dass es sich hierbei um allgemeine Schritte handelt und spezifische Details je nach Ihrem Windows 11-Setup und Ihrer Version variieren können. Für weitere Informationen https://nachrichtenmorgen.de/

#7416210
Lesenswert?

William N. schrieb:

So legen Sie Pfade für AVR-GCC in Windows 11 fest:

[...blabla...]

Das funktioniert so natürlich nur maximal so lange, wie man es nur mit einer Version der avr-gcc Toolchain zu tun hat. Bestenfalls...

Oft genug stören aber auch bei nur einer Version von avr-gcc gleichnamige Kommandos anderer Toolchains.

Es ist also definitiv eine gute Idee, die Pfade nicht global zu setzen, sondern nur lokal für den Kontext, in dem man die "Hauptanwendung" startet (typisch also eine IDE oder einen zu einer Quasi-IDE aufgeblasenen Editor).

Persönliche Seite #7416297
Lesenswert?

William N. schrieb:

Durch die korrekte Einstellung der Pfade stellen Sie sicher, dass Ihr System die notwendigen Ressourcen für AVR-GCC finden kann.

avr-gcc selbst wird ja gefunden.

Damit die mitgelieferten device-specs gefunden werden, sind keine extra Pfade nötig. Wäre auch blöd wenn's nicht so wäre.

Bislang gibt's 2 Möglichkeiten:

  1. Die Installation ist defekt. Eher unwahrscheinlich, weil Zak Kimble schon länger Compiler zur Verfügung stellt.

  2. Die Pfade in Windows sind nicht so, wie sie scheinen.

Als erstet würd ich aber sicherstellen, dass in den Installatonspfaden keine Zeichen wie " " oder "(" etc. drinne sind.

EDIT:

Gerade getestet: Zumindest unter Linux sind Sonderzeichen im Installatonspfak kein Problem.

Was ist die Ausgabe von "avr-gcc -v" ohne weitere Optionen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren