Hi, ich probiere meine main.c Datei zu kompilieren, aber ich bekomme die folgende error-message: -------- begin -------- avr-gcc (WinAVR 20081205) 4.3.2 Copyright (C) 2008 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: ***No rule to make target 'main.elf', needed by 'elf'. Stop. 1. main.c ist in dem gleichen Verzeichnis mit Makefile 2. nutze atmega16 3. nutze winavr-20081205 4. make clean war auch Hat jemand Idee, was hier das Problem ist? Ich habe schon bereits nachgegoogelt, Foren gelesen, vieles ausprobiert, aber nix hat mir geholfen, oder naja wenigstens habe ich den Fehler nicht gefunden... Makefile ist im Anhang. ******main.c******* #include <avr/io.h> // (1) int main (void) { // (2) DDRB = 0xff; // (3) PORTB = 0x03; // (4) while(1) { // (5a) /* "leere" Schleife*/; // (5b) } // (5c) /* wird nie erreicht */ return 0; // (6) } Danke, M.
Verzeichnisname auf Sonderzeichen und Leerzeichen kontrollieren: http://www.mikrocontroller.net/articles/WinAVR#make.exe:_.2A.2A.2A_No_rule_to_make_target_.60main.elf.27.2C_needed_by_.60elf.27. Unter Vista? Dann auch Zugriffsrechte des Projektordners prüfen Schreibweise main.c (passt zum Makefile) oder Main.c (passt nicht) prüfen.
Soweit ich das sehe, hast du in deinem Makefile etliche rules mit TABs voran. und somit werden diese nicht als rules erkannt. also achte darauf, dass es zB so aussieht: # Link: create ELF output file from object files. .SECONDARY : $(TARGET).elf .PRECIOUS : $(OBJ) %.elf: $(OBJ) @echo @echo $(MSG_LINKING) $@ $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS) Bei dir sind die 3 Zeilen nach dem comment ebenfalls mit einem führenden TAB, also eingerückt. make ist da ganz genau mit den TABs. entweder händisch entfernen oder dir ein neues Makefile besorgen.
Ja da ist vielleicht ein kaputtes Makefile im Umlauf. Die Frage war schon mal da: Beitrag "Re: cmd: make - no rule to make target main.elf" Martin, woher hast du das Makefile? Oder Copy&Paste aus dem Wiki statt Download?
Danke für die Ideen. Stefan: Ja, Vista, und habe die Zugriffsrechte jetzt geändert. Hmmm...das ist eine gute frage, wo mein Makefile herkommt, kann ich mich daran gar nicht erinneren, aber auf jeden Fall war's Copy&Paste... chester: Das mit dem TAB hat geholfen! Jedenfalls habe ich ein anderes Problem. Nachdem make all kommt die Fehlermeldung: main.c:21: fatal error: opening dependency file .dep/main.o.d: No such file or directory [Screenshot im Anhang] Könnt ihr bitte weiterhelfen? Danke, M.
Bei folgender Zeile den TAB entfernen
1 | # Include the dependency files.
|
2 | -include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) |
Jetzt meckert der Compiler weiter. Assembler messages: Fatal error: can't create obj/main.o: No such file or directory make: ***[obj/main.o] Error 1 Ich habe mir das Makefile ausführlich angekuckt, aber habe keinen anderen TAB Fehler gefunden. Woran liegt das Problem? Übrigens, ich habe eine interessante Webseite gefunden. Vielleicht wird sie für jemanden, der ebenso Vindoze Vista nutzen muss, hilfreich. Der Artikel bezieht sich auf einen Fehler mit Vista und Winavr. Für ältere Versionen von Winavr gibt's ein Patch da. http://forums.ladyada.net/viewtopic.php?f=39&t=8261&p=41342 http://www.madwizard.org/electronics/articles/winavrvista
ich denke das hier ist der letzte
1 | # Create object files directory
|
2 | $(shell mkdir $(OBJDIR) 2>/dev/null) |
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.