www.mikrocontroller.net

Forum: Compiler & IDEs avr-gcc - kompilierungsproblem


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

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
Bei folgender Zeile den TAB entfernen
# Include the dependency files.
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)

Autor: Martin Nachname (krivan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
ich denke das hier ist der letzte
# Create object files directory
$(shell mkdir $(OBJDIR) 2>/dev/null)

Autor: Martin Nachname (krivan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.