Hallo Ich habe Heute mit Hilfe des AVR GCC Tutorials mein erstes Programm, ein Lauflicht für einen Mikrocontroller geschrieben. Dazu habe ich ein makefile erstellt und wollte mir damit nun eine .hex Datei erzeugen, welche ich in den Controller spielen kann. Wenn ich nun in der Eingabeaufforderung in den Ordner gehe wo die Dateien main.c und makefile.bak sind und den Befehl "make all" ausführe, bekomme ich immer die Fehlermeldung: No rule to make target 'all' . Stop Was mache ich falsch?
Ja was wäre denn "all"? Im Tutorial steht halt nur: D:\tmp\gcc_tut\quickstart>dir Verzeichnis von D:\tmp\gcc_tut\quickstart 28.11.2006 22:53 <DIR> . 28.11.2006 22:53 <DIR> .. 28.11.2006 20:06 118 main.c 28.11.2006 20:03 16.810 Makefile 2 Datei(en) 16.928 Bytes Nun gibt man make all ein. Falls das mit WinAVR installierte Programmers Notepad genutzt wird, gibt es dazu einen Menüpunkt im Tools Menü. Sind alle Einstellungen korrekt, entsteht eine Datei main.hex, in der der Code für den AVR enthalten ist. D:\tmp\gcc_tut\quickstart>make all Klappt nur bei mir nicht. Wahrscheinlich weil ich das unter WINXP versuche. Wie compiliert ihr den eure Files?
Hänge deine problematische Dateien bei solchen Fragen an. Dann geht es mit den Antworten fixer. In der Artikelsammlung ist ein Beispiel Makefile http://www.mikrocontroller.net/articles/Beispiel_Makefile Im ersten Makefile ist die Regel für all wie folgt: # Default target. all: begin gccversion sizebefore build sizeafter end Schau nach, ob das in deinem Makefile so ähnlich ist.
Kai wrote: > Wenn ich nun in der Eingabeaufforderung in den Ordner gehe wo die > Dateien main.c und makefile.bak sind und den Befehl "make all" ausführe, > bekomme ich immer die Fehlermeldung: No rule to make target 'all' . Stop "makefile.bak" ?! Die sollte eigentlich "Makefile" heissen. Jedenfalls deutet deine Fehlermeldung darauf hin, daß kein Makefile vorhanden ist.
Nein, das heisst dass das Target "all" im Makefile nicht vorhanden ist. Man kann ein anderes default-target waehlen, indem man: nothing-specified: target im Makefile angibt.
Michael G. wrote:
> Nein, das heisst dass das Target "all" im Makefile nicht vorhanden ist.
Geh mal in irgendein Verzeichnis ohne Makefile und gib "make all" ein.
Bei mir kommt
1 | C:\Dokumente und Einstellungen\abcd>make all |
2 | make: *** No rule to make target `all'. Stop. |
sowohl unter Windows als auch unter Linux!
michael@quark:~> make all make: *** No rule to make target `all'. Stop. michael@quark:~> make make: *** No targets specified and no makefile found. Stop.
>>>> Wie compiliert ihr den eure Files? damit: http://www.myavr.de/download/myAVR_WorkpadPLUS_Demo.exe gruß J.
Hallo, ich persönlich bevorzuge es auch, wenn mir das Makefile automatisch erzeugt wird. Das AVR-Studio von Atmel kann das ebenfalls. Grüße
Michael G. wrote: > michael@quark:~> make all > make: *** No rule to make target `all'. Stop. > michael@quark:~> make > make: *** No targets specified and no makefile found. Stop. und ich Quote nochmal das erste Posting des OP: > [..] und den Befehl "make all" ausführe, > bekomme ich immer die Fehlermeldung: No rule to make target 'all' . Stop Folglich: Makefile fehlt! Nix anderes!
Niels Hüsken wrote: > Michael G. wrote: >> michael@quark:~> make all >> make: *** No rule to make target `all'. Stop. >> michael@quark:~> make >> make: *** No targets specified and no makefile found. Stop. > > und ich Quote nochmal das erste Posting des OP: > >> [..] und den Befehl "make all" ausführe, >> bekomme ich immer die Fehlermeldung: No rule to make target 'all' . Stop > > Folglich: Makefile fehlt! Nix anderes! Also wenn ich das richtig verstehe, heißt die Meldung
1 | No rule to make target 'all' . Stop |
dass bei dem aktuellen Aufruf von Make kein Target "all" gefunden werden kann. Unabhängig davon, ob das Makefile existiert oder nicht. Sprich: Selbst wenn ein Makefile ohne das Target "all" existieren würde, käme exakt die Gleiche Fehlermeldung.
Simon K. wrote: > kann. Unabhängig davon, ob das Makefile existiert oder nicht. Sprich: > Selbst wenn ein Makefile ohne das Target "all" existieren würde, käme > exakt die Gleiche Fehlermeldung. Nach der Beschreibung des OP ist das aber eher unwahrscheinlich. Wahrscheinlicher ist, das das Makefile ganz fehlt.
@ Kai (Gast) >Wenn ich nun in der Eingabeaufforderung in den Ordner gehe wo die >Dateien main.c und makefile.bak sind und den Befehl "make all" ausführe, Was soll diese Steinzeitmethode als Anfänger ? Nimm AVR Studio und compiliere damit. MFG Falk
So, nun funktioniert es. Danke sehr! Das Problem wahr tatsächlich die Endung .mak. Diese entfernt und schon ging es. Nun hab ich eine Frage zu der Größe des erzeugten .hex Files. Wenn ich nun mein einfaches Blinkprogramm für den ATMega16 compiliere, ist dies ca. 14kB groß. Wenn ich nun im Makefile den Controllertyp ändere, ist das .hex File nur noch 6kB groß. Kann mir einer sagen warum das so ist?
Die Grösse der HEX-Datei ist nicht ausschlaggebend, ob die Datei in den µC passt. Die HEX-Datei enthält den binären Inhalt für den µC in codierter Form und ist deshalb immer wesentlich fetter als das binäre Speicherabbild. Und weil fast immer der komplette Inhalt des µC in der HEX-Datei abgelegt wird, hängt die Grösse auch grundsätzlich von der FLASH-Grösse des jeweiligen µCs ab.
Simon K. wrote: > Also wenn ich das richtig verstehe, heißt die Meldung >
1 | No rule to make target 'all' . Stop |
> dass bei dem aktuellen Aufruf von Make kein Target "all" gefunden werden > kann. Mir fällt gerade noch etwas dazu ein: Als Programmierer lernt man irgendwann die Bedeutung einer Fehlermeldung zu ignorieren, weil man selber aus eigener Erfahrung weiss, daß man nicht für jede Eventualität eine eigene Fehlermeldung mit eigenem Fehlertext einbauen kann. Die Fehlermeldung "No rule to make target 'all' . Stop" sagt mir: Hier ist irgendwas ganz am Anfang des Prozesses etwas falsch gelaufen.
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.