No Rule To Make Target?!

Gast #1472099
Moin zusammen,
AVR-Studio meldet mir mit dieser angehängten Makefile
"make: *** No rule to make target `../Netzteil.c', needed by 
`Netzteil.o'.  Stop."

Ich hab mich mal an den Suchergebnissen hier im Forum entlang gehangelt, 
aber trotzdem kann ich dn Fehler nicht finden.

Könnt Ihr mir helfen?!

Vielleicht noch die Info: Das Problem besteht erst, seit dem ich die 
Makefile mal in AVRStudio abgehängt habe, und dieselbe Datei 
(unverändert) wieder einhängen wollte.

Grüße,

Dennis
Angehängte Dateien:
Das Makefile schaut so aus, als würde es in ein Unterverzeichnis 
gehören.

Leg mal da, wo dein Netzteil.c liegt, ein neues Verzeichnis an (z.b. 
"build"), verschieb das Makefile da rein, und versuchs nochmal.

Oder lass das Makefile "neben" dem "Netzteil.cc", nimm dafür das "../" 
in Zeile 47 raus.
Gast
okay, nun habe ich das hier:

gcc plug-in: Error: Object file not found on expected location D:\Eigene 
Dateien\Elektronikzeugs\Projekte\Netzteil\C\Netzteil.elf
Make sure your makefile specifies the output .elf file as Netzteil.elf

gcc plug-in: Error: Object file not found on expected location D:\Eigene 
Dateien\Elektronikzeugs\Projekte\Netzteil\C\Netzteil.elf
Make sure your makefile specifies the output .elf file as Netzteil.elf

Zwei Mal die gleiche Meldung?!
Gast
okay, ich habe das Problem für die letzte Meldung gefunden...irgendwas 
ist mit einer .h-Datei nicht richtig.

#include<avr\stdlib.h>

Compiler meldet:

../Netzteil.c:6:23: error: avr\stdlib.h: No such file or directory
../Netzteil.c: In function 'print_voltage':
../Netzteil.c:210: warning: implicit declaration of function 'itoa'

Aber ich habe das überprüft: Die Datei liegt in dem genannten 
Verzeichnis.

Was ist das denn nun?!
Gast
>Schreib besser:

>#include <avr/stdlib.h>

>('/' statt '\')

Ich habe alle #includes so. Wenn ich Deinem Rat folge, dann versteht das 
Ding gar nichts mehr.

<ausserdem liegt die "stdlib.h" (bei mir) nicht im avr-Unterverzeichnis.

Keine Ahnung, warum das bei mir so ist. Aber die ist ganz sicher da.
Dennis schrieb:

> Keine Ahnung, warum das bei mir so ist. Aber die ist ganz sicher da.

Dann ist das Falsch. Der C-Standard schreibt vor, dass das
#include <stdlib.h>
heißen muss.
Versuchs einfach mal, vermutlich ist dein "avr"-Verzeichnis im Suchpfad.
Gast
okay, das hab ich gemacht. Und das funktioniert auch. Danke!
Das sieht nun aber bei mir so aus:


#include<avr\io.h>
#include<avr\interrupt.h>
#include<avr\portpins.h>
#include<stdlib.h>

stdlib.h liegt im gleichen Verzeichnis wie die anderen .h auch ... Das 
Programm wird nun einwandfrei compiliert. Wurde es bis vor 2 Stunden 
aber auch. Und ich habe an dem Programm nix geändert, ausser, dass ich 
versehentlich die Makefile vom Projekt entfernt habe. Nachdem ich diese 
wieder eingebunden hatte, ging das los. Und an den #includes habe ich 
nichts verändert.

Kann mir das jemand erklären?!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.