Forum: Compiler & IDEs Nich lösbarer Fehler bei Build


von Oliver M. (oliveroliver1)


Lesenswert?

#include "asuro.h"

int main()
{
  Init();
  while (1==1)
  {
    MotorSpeed (90,90);
  }
}

Hallo,
wenn ich das oben gezeigte Programm compiliere tritt keine Fehlermeldung 
auf, jedoch wenn ich build mache, kommt immer eine Fehlermeldung, an der 
ich jetzt schon seit langer Zeit scheitere:
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crt 
m8.o:(.init9+0x0):  undefined reference to `main'
make: *** [MotorenTest1.elf] Error 1
Ich habe die asuro.c und die asuro.h jedoch richtig eingebunden.
Bitte helft mir, mein Problem zu lösen!

LG Oliver

von Oliver (Gast)


Lesenswert?

Oliver Müller schrieb:
> Ich habe die asuro.c und die asuro.h jedoch richtig eingebunden.

Wie und wo?

Oliver

von Oliver M. (oliveroliver1)


Lesenswert?

ich hab die asuro.h mit:
#include "asuro.h"
eingebunden und die asuro.c zu den source files hinzu gefügt.
Oder ist mit ein Fehler unterlaufen?
Vielen Danke schon einmal!

von Knut (Gast)


Lesenswert?

Deine geschweiften Klammern hinter Main dürfen nicht sein!


Knut

von Peter II (Gast)


Lesenswert?

Knut schrieb:
> Deine geschweiften Klammern hinter Main dürfen nicht sein!

und warum nicht? main gibt es mit und ohne parameter!

von Knut (Gast)


Lesenswert?

Sorry, verguckt...

von Jasch (Gast)


Lesenswert?

Oliver Müller schrieb:
> ich hab die asuro.h mit:
> #include "asuro.h"
> eingebunden und die asuro.c zu den source files hinzu gefügt.
> Oder ist mit ein Fehler unterlaufen?

Scheinbar nicht bei der asuro.h, aber wenn der gezeigte Code in asuro.c 
steht wird das File entweder nicht mitcompiliert oder nicht mitgelinkt. 
Oder versehentlich als C++ compiliert (Name Mangling)?

Sagt jedenfalls die Fehlermeldung: der Startcode (was meiner Meinung 
nach "crtm8.o" ist) ruft main() auf - die nicht zu finden ist.

Prüf das nochmal sorgfältig, Du solltest auch irgendwie die wirklichen 
Aufrufe des Compilers sichtbar machen können - da sieht man die 
verwendeten Files.

von Rolf Magnus (Gast)


Lesenswert?

Oliver Müller schrieb:
> wenn ich das oben gezeigte Programm compiliere tritt keine Fehlermeldung
> auf, jedoch wenn ich build mache, kommt immer eine Fehlermeldung, an der

Was ist denn der Unterschied zwischen compilieren unnd "build machen"?
Wie sieht das ausgeführte Linker-Kommando aus?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Oliver Müller schrieb:
> ich hab die asuro.h mit:
> #include "asuro.h"
> eingebunden und die asuro.c zu den source files hinzu gefügt.

Aber hast du auch die .c-Datei mit dem oben geposteten Code zu den
Source-Files hinzugefügt? Wenn nicht, fehlt dem Gesamtprogramm die
main-Funktion, und der Linker weist dich mit einer "undefined reference
to `main'" darauf hin.

Da erst der Linker die einzelnen Funktionen zu einem lauffähigen
Gesamtprogramm zusammenbaut, tritt der Fehler beim Kompilieren der
Einzeldatei noch nicht auf.

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.