mikrocontroller.net

Forum: Compiler & IDEs fehlermeldung beim compilieren


Autor: tronic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.

Immer wenn ich im PN was compilieren möchte bringt dieser mir folgende 
Meldung:

  -------- begin --------
  avr-gcc --version
  avr-gcc (GCC) 3.3 20030421 (prerelease)
  Copyright (C) 2002 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.o', needed by
  'main.elf'.  Stop.

  > Process Exit Code: 2


Kann mir jemand weiterhelfen?

 mfg tronic

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du denn ein main.c?

Autor: tronic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Hilfe.
Jetzt kommt der Complier zwar schon ein wenig weiter aber er scheitert 
wieder:



set -e; avr-gcc -MM -mmcu=at90s8515 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-ahlms=main.lst main.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > main.d; \
[ -s main.d ] || rm -f main.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3 20030421 (prerelease)
Copyright (C) 2002 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.

avr-gcc -c -mmcu=at90s8515 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-ahlms=main.lst main.c -o main.o
main.c:4: warning: return type of `main' is not `int'
make: *** No rule to make target `foo.o', needed by `main.elf'.  Stop.

> Process Exit Code: 2

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> main.c:4: warning: return type of `main' is not `int'

Standard-C kennt zwei gültige Prototypen für main():

int main(void);
int main(int, char **);

Du solltest Dein main() also sinnvollerweise als Typ int
deklarieren und am Ende ein "return 0;" schreiben.  Das
return wird in der Praxis nicht erreicht und daher vom Optimizer
rausgeworfen, aber Du hast der vorgeschriebenen Syntax genüge
getan.


> make: *** No rule to make target `foo.o', needed by `main.elf'. Stop.

Nun, wenn Du in Deinem Makefile mal nach "foo" gesucht hättest,
solltest Du das selbst sehen.  Da steht noch ein "foo.c" und
ein "bar.c" als Beispiel für mögliche weitere Quelldateinamen
drin.  Wirf's raus.  (Da das sehr viele Leute nicht geschnallt
haben, wird Eric das wohl in der nächsten WinAVR-Version wieder
rausnehmen.)

Autor: tronic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen dank für die ausfürliche erklärung.

nun klappt alles

mit freundlichen grüssen tronic

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.