fehlermeldung beim compilieren

Gast #40311
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
Gast #40313
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
Gast #40314
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.)

Antwort schreiben

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.

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.