Warum keine anständige Fehlermeldung

Gast #237851
Hallo

Heute habe ich nun WinAVR installiert und in betrieb genommen.
Das Beispiel int \examples\demo konnte ich kompillieren ohne Fehler.

Nun habe ich ein gefundenes Programm reinkopiert mit Makefile für
ATMega16.

Jetzt bekomme ich folgende Fehlermeldung(Siehe Bild).

Was sagt mir die Fehlermeldung?

Ist es normale dass die Fehlermeldung so wenig aussagt
oder bin ich da als Anfänger noch überfordert?


Gruss

MidasX






#include <avr/io.h>


static void avr_init(void);


int main(void)
{
    avr_init();

    for(;;)
    {
        // Tasks here.

    }

    return(0);
}



static void avr_init(void)
{
    // Initialize device here.


void

void

void

#include <avr/io.h>


static void avr_init(void);


int main(void)
{
    avr_init();

    for(;;)
    {
        // Tasks here.

    }

    return(0);
}



static void avr_init(void)
{
    // Initialize device here.


    return;
}


    (void)
{
}


    (void)
{
}


    (void)
{
}




    return;
}


    /*********************************************
Lauflicht (3 LED's)
Compiler            : winavr
Chip type           : ATtiny2313
nst, 09.03.2005
*********************************************/
#include <avr/io.h>
#include <avr/delay.h>

#define outp(o_bit, v) v=o_bit

void main(void)
{ unsigned char led = 0x01;
  unsigned char i;

  outp(0x0F,DDRD);
  while (1)
  { outp(~led, PORTD);
    led <<=1;
    if (led == 0x10)
    { for (i=0; i<10; i++) _delay_loop_2(50000);
      led = 0x01;
      outp(~0x00, PORTD);
    }
    for (i=0; i<10; i++) _delay_loop_2(50000);

  }
}
Angehängte Dateien:
Persönliche Seite
"make.exe: *** No rule to make target `main.o', needed by
`main.elf'"

Das ist eine anständige Fehlermeldung. Aber keine, die sich auf Dein
C-Programm bezieht, sondern eine, die sich auf das Makefile bezieht.

Darin wird vermutlich ein C-Sourcefile namens main.c erwartet; Deines
aber heisst Testbeispiel1.c.
Gast
Hi Rufus T. Firefly

Habe ich die Funktion vom Makefile falsch verstanden?

Ich bin immer davon ausgegangen dass das File nur dazu da ist damit der
Compiler weiss für welchen mc er Compilieren muss?

Ich habe das MakeFile erstellt und ins gleiche Verzeichnis kompiert
meines Projekt kompiert.

Warum braucht der das Main.o und was soll main.elf sein?

Gruss

MidasX
Angehängte Dateien:
Persönliche Seite
Im Makefile muss aufgeführt werden, welche Sourcefiles zum Projekt
gehören - auch bei einem aus nur einem Sourcefile bestehenden Projekt
muss der Name des Sourcefiles drinstehen.

Ausschnitt aus "deinem" Makefile:

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

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

Entweder benennst Du Dein Sourcefile in main.c um oder aber Du
schreibst in das Makefile an dieser Stelle den Namen Testbeispiel1
'rein.
Gast
Hallo

Ich habe jetzt mein erstes Beispiel geschrieben.

Leider funktioniert es nicht. Sobald ich den Befehl "outp" einsetzte
kommen Fehlermeldungen. Irgendwie kann er die Funktion dazu nicht
finden.

Ich habe die Bibliothek <io.h< ins gleiche Verzeichnis meines Projekts
kopiert.

Muss man dies überhaupt machen.

Ich vermute dass ich hier was falsch gelinkt haben?
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.