Forum: Compiler & IDEs Warum keine anständige Fehlermeldung


von MidasX (Gast)


Angehängte Dateien:

Lesenswert?

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);

  }
}

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

"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.

von MidasX (Gast)


Angehängte Dateien:

Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von MidasX (Gast)


Lesenswert?

Wowww jetzt geht was. Soweit mal danke.

von MidasX (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Dokumentation lesen, avr-gcc-Tutorial lesen!

outp/inp/etc... existieren nicht mehr!

von MidasX (Gast)


Lesenswert?

Hi

Danke. Der Fehler kam davon dass ich ein anderes und älteres Tutorial
studierte.

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
Noch kein Account? Hier anmelden.