Forum: Mikrocontroller und Digitale Elektronik Misteriöser Fehler ????


von Frank Weltz (Gast)


Lesenswert?

Hallo....

ich programmiere schon seit einer weile an einen kleinen Projekt in
WINAVR. Vor ein paar tagen bekam ich plötzlich aus heiterem himmel eine
fehlermeldung. Die Allerdings nach ner weile wieder weg ging (ich weiss
nicht warum). Die fehlermeldung kommt jetzt plötzlich wieder...obwohl
ich an der betroffenen datei nichts gemacht hab.
Was soll diese Fehlermmeldung bedeuten ? Wie kann ich die fehlende rule
festlegen ?


Gruß, Frank

Fehlermeldung:
make.exe: *** No rule to make target `spi.o', needed by `main.elf'.
Stop.

> Process Exit Code: 2

von Christian F. (fasti)


Lesenswert?

Hi!

Klingt für mich als ob im makefile was nicht in Ordnung ist.
Schau mal nach, ob der main File name (Filename ohne .c) und die C/C++
Sourcefilesverknüpfung in Ordnung sind. Hatte das gleiche Problem auch
grad erst :-)

mfg

Fasti

von Frank Weltz (Gast)


Lesenswert?

Ich hab daran aber nix geändert....das Makefile war nichtmal geöffnet.
Der fehler ist beidermal bei der spi.o aufgetreten...obwohl ich die
nicht offen hatte.

# List C source files here. (C dependencies are automatically
generated.)
SRC = $(TARGET).c flash.c test.c spi.c

von Christian F. (fasti)


Lesenswert?

und beim main file name ist auch noch der Name der Datei ohne Endung
drin?

von Frank Weltz (Gast)


Lesenswert?

Ja, hab ich auch gemacht.

ich geh eigentlich mit allen .c files gleich um.....
wiso tritt der fehler nur bei der spi.c auf ?


# Target file name (without extension).
TARGET = main

von Christian F. (fasti)


Lesenswert?

mhm, heisst dein File wirklich main?
Ich habe dort den Namen meiner C-Datei reingeschrieben und dann hats
bei mir funktioniert. Was da sonst noch sein könnte bin ich jetzt auch
überfragt.....

von Frank Weltz (Gast)


Lesenswert?

Ja, die datei heisst main.
Woran könnte das liegen ?

von Hegy (Gast)


Lesenswert?

Du hast an einer Datei was geandert, mit der das File "spi.o" erstellt
wird. Make kriegt das mit, das da eine Aenderung vorgenommen wurde und
will spi.o neu bauen, geht aber nicht, weil im Makefile keine
"anleitung" steht, wie spi.o gebaut werden soll. Also musst du das
Makefile entsprechend erweitern, oder das spi.o per Hand bauen, ist
aber mit Makefile, wenn du's benutzt, natuelrich sinniger.

Kurzum: main.elf enthaelt spi.o, spi.o ist (auch) aus spi.c entsanden.
spi.c geaendert, spi.o neubauen (make-Fehler, wie bauen??), spi.o &
evtl andere *.o Files zum main.elf zusammendaengeln.

von Feadi (Gast)


Lesenswert?

@Hegy:
Vergiss bitte nicht die default-rules: Wenn eine .c datei vorhanden ist
und eine .o Datei gebraucht wird, wird die .o Datei automatisch aus der
.c Datei erstellt. Auch ohne Regel in der Makefile.

Feadi

von Alexander (Gast)


Lesenswert?

Ich hatte sowas auch manchmal sporadisch. Im Normalfall hat ein make
clean und danach ein make all die Sache immer behoben.

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.