Forum: Mikrocontroller und Digitale Elektronik makefile error: no rule to make ...


von mrdaniel82 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich wollte mein erstes kleines programm schreiben, hab mir das tutorial
durchgelesen und das makefile mittels mfile konfiguriert.
beim ausführen von make all aus dem winavr - programers npad tritt dann
der fehler

-------- begin --------
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

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

> Process Exit Code: 2

nach einiger suche hab ich dann den eintrag:
# Compile: create object files from C source files.
%.o : %.c

das file sollte also angelegt werden. sollte!
auch das suchen nach dem file brachte kein ergebnis.
für ratschläge wäre ich dankbar

von Thomas (Gast)


Lesenswert?

Wichtig ist, dass deine Datei mit dem C-Sourcecode als main.c
abgespeichert ist (Groß-/Kleinschreibung beachten).
Sonst wird nichts kompiliert.

von Marco S (Gast)


Lesenswert?

Hallo.

Das nervige make ist ganz schön kompliziert. Also sehe ich mich um und
finde scons (www.scons.org). Dieses ist unter Python geschrieben.
Python stellt unter Linux normalerweise kein Problem dar, gehört zum
Standard. Damit verkürzt sich das "Makefile" auf:

--- SConstruct -----------------------------------------------------
src_files = Split('main.c fkt1.c')
prg_file = 'prog'

env = Environment(CC='/usr/local/avr/bin/avr-gcc',
                  CCFLAGS='-mmcu=atmega8 -Os -g3')
env.Program(prg_file, src_files)
--------------------------------------------------------------------

Unschön hieran ist, dass avr-gcc mit dem kompletten Pfad angegeben
werden muss. Dies ist meine erste Version mit scons und falls jemand
Lösungsvorschläge/Verbesserungen hat, immer her damit.

Gruß
Marco
-

von Michael K. (onkel_michi)


Lesenswert?

Ich bin auch Linux-Freak und habe das OS aus Redmond nie privat
benutzt.

mrdaniel82 hat WinAVR und unter Windows ist Python ein ziemliches
Problem.

@mrdaniel82

Das mit dem make ist eigentlich ganz einfach, wenn Du mfile benutzt.
Wenn Du nur eine Datei im Sourcecode hast, dann nenne sie main.c
Das Makefile, das aus dem PN2 aufgerufen wird und das Du mit mfile
erzeugst, nimmt automatisch an, das der Sorucecode mit dem main()
Funktionsaufruf in der Datei main.c steht.

Sollte Deine Datei, die die main() Funktion enthält, aber
meinprogramm.c heißen, dann musst Du in mfile bei "Main File" den
Namen meinprogramm eintragen.

Wenn Du dann z.B. die LCD-Sachen noch in Deinem Programm brauchst, dann
musst Du die in "Source Files" noch eintragen. (main nicht mehr, das
ist automatisch in der Liste drin.)

Ich hoffe, das hilft Dir ein wenig weiter.

von Ewald K. (ebtschi)


Lesenswert?

"unter Windows ist Python ein ziemliches Problem."

Das halte ich für ein Gerücht. Wenn ich Windows verwende nehme ich
ActivePython (http://www.activestate.com/Products/ActivePython/), es
gibt aber auch noch andere. Probleme sind mir bisher noch keine
begegnet. Das Python-Zeug, das ich unter Linux entwickelt habe, kann
ich fast immer 1:1 verwenden.

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.