www.mikrocontroller.net

Forum: GCC avr-gcc - kompilierungsproblem


Autor: Martin Nachname (krivan)
Datum:
Angehängte Dateien:

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.
Autor: Stefan B. (stefan) Benutzerseite
Datum:

Verzeichnisname auf Sonderzeichen und Leerzeichen kontrollieren:

http://www.mikrocontroller.net/articles/WinAVR#mak....

Unter Vista?
Dann auch Zugriffsrechte des Projektordners prüfen

Schreibweise main.c (passt zum Makefile) oder Main.c (passt nicht)
prüfen.
Autor: chester (Gast)
Datum:

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.
Autor: Stefan B. (stefan) Benutzerseite
Datum:

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?
Autor: Martin Nachname (krivan)
Datum:
Angehängte Dateien:

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.
Autor: chester (Gast)
Datum:

Bei folgender Zeile den TAB entfernen
# Include the dependency files.
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
Autor: Martin Nachname (krivan)
Datum:

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=826...
http://www.madwizard.org/electronics/articles/winavrvista
Autor: chester (Gast)
Datum:

ich denke das hier ist der letzte
# Create object files directory
$(shell mkdir $(OBJDIR) 2>/dev/null)
Autor: Martin Nachname (krivan)
Datum:

Ja, danke. Das war das Problem. Jetzt funktioniert es.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net