PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : WinAVR unter XP meldet "no rule to make target 'all'



gerd domrath
27.06.2005, 15:47
Seit kurzem habe ich auf meinem Laptop: Compaq Armada M700 Windows XP installiert. (Vorher Windows2000) danach funktionierte mein WinAVR nicht mehr.
Es kam genau diese Fehlermeldung: No rule to make target 'all'
(beim Übersetzen des "demo"-Programms in examples).
Die selbe Installation auf meinem Desktop-PC mit der selben XP-Version funktionierte auf Anhieb.
Im Internet hab ich nichts über eine Lösung hierzu entdeckt :frown:
Durch massives Ausprobieren und Austauschen der makefiles und make.exe bin ich zu einer merkwürdigen Lösung gekommen.
Ich hatte das make.exe unter \winavr\utils\bin umbenannt um ein anderes auszuprobieren. Ich nannte es make_1.exe.
Wenn ich dieses Programm aufrief: unter winavr\examples\demo\make_1 all, funktionierte das "make" plötzlich.
Benannte ich es wieder um, funktionierte es nicht mehr!
Nun musste ich mein Programmers Notepad (PN) so hacken dass es nicht mehr make.exe sondern make_1.exe aufrief.
Netterweise sind die Aufrufe in einer XML-Datei unter WinAVR\pn\tools\WinAVR.xml hinterlegt.
Nach der Änderung der drei Aufrufe von make.exe nach make_1.exe klappte alles auch aus PN heraus.
Kann mir das jemand erklären?
Gibt es einen einfacheren Weg zum Ziel?

Gerd Domrath.

Metatron
13.07.2005, 14:49
Seit kurzem habe ich auf meinem Laptop: Compaq Armada M700 Windows XP installiert. (Vorher Windows2000) danach funktionierte mein WinAVR nicht mehr.
Es kam genau diese Fehlermeldung: No rule to make target 'all'
(beim Übersetzen des "demo"-Programms in examples).
Die selbe Installation auf meinem Desktop-PC mit der selben XP-Version funktionierte auf Anhieb.
Im Internet hab ich nichts über eine Lösung hierzu entdeckt :frown:
Durch massives Ausprobieren und Austauschen der makefiles und make.exe bin ich zu einer merkwürdigen Lösung gekommen.
Ich hatte das make.exe unter \winavr\utils\bin umbenannt um ein anderes auszuprobieren. Ich nannte es make_1.exe.
Wenn ich dieses Programm aufrief: unter winavr\examples\demo\make_1 all, funktionierte das "make" plötzlich.
Benannte ich es wieder um, funktionierte es nicht mehr!
Nun musste ich mein Programmers Notepad (PN) so hacken dass es nicht mehr make.exe sondern make_1.exe aufrief.
Netterweise sind die Aufrufe in einer XML-Datei unter WinAVR\pn\tools\WinAVR.xml hinterlegt.
Nach der Änderung der drei Aufrufe von make.exe nach make_1.exe klappte alles auch aus PN heraus.
Kann mir das jemand erklären?
Gibt es einen einfacheren Weg zum Ziel?

Gerd Domrath.

Hai!

Das sieht fast so aus, als hättest du noch eine make.exe irgendwo auf dem System, suche mal nach dieser Datei. --- nur eine Idee...

Tschau Peter

gerd domrath
13.07.2005, 16:12
Definitiv NEIN!

Ich hatte zwar noch andere "makes" , aber selbst als ich die gelöscht hatte ging es nicht.

Andun
13.07.2005, 16:15
Ich kenn mich da nciht 100%ig aus, aber kann man in den PATH Variablen auch explizit .exe dateien angeben? Wenn ja, vielleicht ist da ja noch eine definiert, die er sucht, aber nicht findet.

gerd domrath
13.07.2005, 16:20
Das kann sin, aber wenn ich das make.exe lösche (im Verzeichnis "utils") kommt eine andere Fehlermeldung wie: "file not found".
d.H. es wird auf keinen Fall ein anderes make.exe herangezogen.

PicNick
13.07.2005, 16:36
Ob das "make" funktioniert, kannst du im Dos-Fenster sicher ausprobieren.

c:\>cd work-directory
c:\work-directory>make -f makefile

Die Meldung mit den rules ist ja schon vom make. der kann nix dazu.

gerd domrath
13.07.2005, 16:38
Hab ich auch versucht. Es kommt die selbe Fehlermeldung:
No rule to make Target "all" ...

Kjion
13.07.2005, 23:25
No rule to make Target "all" ...

Hört sich ehrlich gesagt nach einem fehlenden/fehlerhaften Makefile an. Was für eins benutzt du denn ??

MfG Kjion

gerd domrath
14.07.2005, 15:45
Das ist der makefile aus dem aktuellen Download von WinAVR von Sourceforge.net.
MfG. Gerd

Kjion
14.07.2005, 16:07
Das ist der makefile aus dem aktuellen Download von WinAVR von Sourceforge.net

Kannst du das mal zusammen mit deinem Code posten um auszuschließen das es dran liegt??

MfG Kjion

michaelb
14.07.2005, 16:22
Hi Gerd,
Geb mal beim Makefile in der Zeile
TARGET = Name
für Name den Namen deiner C Datei an. Ich glaube aber eher nicht dass es daran liegt!
Gruß Michi

gerd domrath
14.07.2005, 16:46
Im meinem Makefile gibt es ja gar kein "TARGET"
in dem Demo-Projekt heisst es in der entsprechenden Zeile: "MCU_TARGET" = atmega8
Der C-File Name steht unter PRG = demo.

Wenn das "make.exe" nach "make_neu.exe" umbenannt wird, funktioniert ja auch alles zu meiner vollsten Zufriedenheit.
Aber eben nicht mit "make.exe", obwohl es die selbe Datei ist, welche ich nur umbenannt habe.

Gruß, Gerd

PicNick
14.07.2005, 16:50
Also ich find in der makefile folgendes:

# MCU name
MCU = atmega128

# Output format. (can be srec, ihex, binary)
FORMAT = ihex

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


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

es gibt doch den praktischen "Mfile", der macht das doch sehr intuitiv.

SprinterSB
14.07.2005, 16:55
Und du furfst dein make.exe bzw make_neu.exe von Kommandozeile auf?

gerd domrath
15.07.2005, 09:13
Es ist egal, wie ich es aufrufe, der Fehler bleibt derselbe.

SprinterSB
15.07.2005, 09:24
Das ist alles sehr seltsam. Hast du mal versucht, nach der XP Installation dein winavr runter zu werfen und neu zu installieren?
Sieht so aus, als wäre nicht make das Problem sondern das Prob auf XP-Seite.
Irgend ein alter Schotter in der Registry gemerkt oder so.
Ich vermute mal es war keine Neuinstallation sondern nur eine "Drüberinstallation".
Ich hatte früher mal Probleme, wenn der Pfad der avr tools nicht am Anfang der path-Variablen stand.

gerd domrath
15.07.2005, 12:28
Ich hatte vorher Windows2000 installiert. da funktionierte alles einwandfrei.

minastaros
20.07.2005, 11:54
Hallo Leute,

wir hatten ein ähnliches Problem: Ein C-Programm, was mit einer älteren Version des WINAVR einwandfrei funktionierte, lieferte nach Installation der neuesten Version genau diese Fehlermeldung.

Ursache: Das Makefile muß genauso geschrieben werden (M groß, Rest klein), vorher war es MAKEFILE.

Des weiteren hat der Compiler die Datei twi.h nicht mehr gefunden, weil die jetzt in einem anderen Verzeichnis liegt. Sollte der C-Code also darauf zugreifen, folgendes ändern:
#include <c:/WinAVR/avr/include/compat/twi.h>
(vorher#include <avr/twi.h>)

Gruß, minastaros

SprinterSB
20.07.2005, 12:05
Wohl eher

#include <compat/twi.h>

und für den Compiler die Option -Ic:/WinAVR/avr/include
Damit ist die C-Quelle unabhängig vom Installationsort des Compilers, aber ./avr/include sollte eigentlich zum Standatd-Include-Pfad gehören...

minastaros
20.07.2005, 12:32
OK, danke, ich kenn mich da auch net so aus. Hat halt auf die Schnelle so funktioniert... Viel wichtiger war erstmal, daß es wieder läuft und er das Makefile wieder erkennt.

Aber hast recht, der Code sollte so sauber und klar wie möglich sein.

Gruß, min