mikrocontroller.net

Forum: Compiler & IDEs Warum keine anständige Fehlermeldung


Autor: MidasX (Gast)
Datum:
Angehängte Dateien:

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

  }
}

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: MidasX (Gast)
Datum:
Angehängte Dateien:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: MidasX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wowww jetzt geht was. Soweit mal danke.

Autor: MidasX (Gast)
Datum:
Angehängte Dateien:

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

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dokumentation lesen, avr-gcc-Tutorial lesen!

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

Autor: MidasX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

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.