Forum: Mikrocontroller und Digitale Elektronik Arduino Uno mit Makefile


von Til H. (turakar)


Angehängte Dateien:

Lesenswert?

Hallo

habe mir mal eine Makefile geschrieben, um mein C Projekt für den 
Arduino Uno hochzuladen. Jedoch meldet diese ein Problem, dass ich nicht 
nachvollziehen kann. Der Output meiner Makefile:

avr-gcc -MM main.c > .depend
avr-gcc -c -Os -DF_CPU=16000000UL -mmcu=atmega328p  -L -o obj/main.o 
main.c
avr-gcc: error: obj/main.o: Datei oder Verzeichnis nicht gefunden
make: *** [obj/main.o] Fehler 1

Ich verstehe nicht, wieso der Compiler darüber meckert, dass er eine 
Datei nicht finden kann, die er erstellen soll. Ich hatte dieses Problem 
bisher nur mit mkdir, und da war das Problem, dass die Elternordner 
fehlten. obj ist jedoch in diesem Fall im selben Ordner und leer.

Alle nötigen Dateien sind im Anhang.

MfG
Til Hoff

von Dr. Sommer (Gast)


Lesenswert?

Til Hoff schrieb:
> avr-gcc -c -Os -DF_CPU=16000000UL -mmcu=atmega328p  -L -o obj/main.o
Da steht
"-L -o obj/main.o"
das bedeutet: "Verwende das Verzeichnis '-o' um nach Libraries zu 
suchen, und verwende die Datei obj/main.o als Eingabe zum Linken".
Sicher dass das -L da stehen soll?!

von holger (Gast)


Lesenswert?

>Sicher dass das -L da stehen soll?!

Vermutlich nicht. Das kommt vom

-L$(ARDUINO_LIB)

ARDUINO_LIB ist aber nicht definiert.

Macht man es so gehts

ALLCFLAGS = -O$(OPT) $(CDEFS) -mmcu=$(MCU) $(CFLAGS)

von Til H. (turakar)


Lesenswert?

Oh...

Ja, habe früher versucht die Arduino Library einzubinden, hab mir dann 
aber gedacht, dass ich sowieso mal lernen sollte wie das "richtig" geht 
und dann vergessen die Überbleibsel in der Makefile zu löschen. Danke, 
manchmal ist man einfach blind.

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.