Forum: Mikrocontroller und Digitale Elektronik Eclipse erstellt im neuen Projekt keine Hex Datei


von Martin Z. (Gast)


Lesenswert?

Hallo,

ich komm hier nicht weiter mit meinem eclipse
ich habe 2 avr-gcc projekte für ein älteres für den atmega32 und ein 
neues für den attiny2313 und bei dem älteren projekt erstellt er mir 
ohne probleme die hex datei usw aber bei dem neuen projekt klappts 
einfach nicht :(
bin mehrere anleitungen durchgegangen und finde keine lösung aber 
irgendwas muss ich ja übersehen oder vergessen haben?

ich habe ein projekt erstellt genau nach anleitung dann eine C source 
erstellt einen kleinen code reinkopiert:
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
int main(void) {
5
  
6
  while (1) {
7
8
9
    if (1 == 1) {
10
11
        _delay_ms(50);
12
    }
13
    
14
  }
15
return 0;
16
}


dann auf das hammer symbol geklickt
gab dann keine probleme ausser den fehler hier:

1
undefined reference to `main'  uartcommunikation  Zeile 195  C/C++ Problem



ich nutze eclipse 4.2.2 unter linux mit dem aktuellsten avr plugin

von Cyblord -. (cyblord)


Lesenswert?

1
int main() {

ein void sollte da doch nicht rein, sonst ists doch ein prototyp. Bin 
aber nicht sicher ob nicht beides geht.

von troll (Gast)


Lesenswert?

>uartcommunikation
Sind da irgendwelche zusätzlichen Dateien eingebunden? Das scheint mir 
ein Linkerfehler zu sein.

von troll (Gast)


Lesenswert?

cyblord ---- schrieb:
>
1
> int main() {
2
>
>
> ein void sollte da doch nicht rein, sonst ists doch ein prototyp.

Nein, ein Prototyp hat ein Semikolon am Ende. Mit dem void hat das imo 
nichts zu tun und ist vollkommen in Ordnung.

von Martin Z. (Gast)


Lesenswert?

troll schrieb:
>>uartcommunikation
> Sind da irgendwelche zusätzlichen Dateien eingebunden? Das scheint mir
> ein Linkerfehler zu sein.

nein hab nichts weiteres eingebunden

von troll (Gast)


Lesenswert?

Martin z. schrieb:
> troll schrieb:
>>>uartcommunikation
>> Sind da irgendwelche zusätzlichen Dateien eingebunden? Das scheint mir
>> ein Linkerfehler zu sein.
>
> nein hab nichts weiteres eingebunden

Ganz sicher? Dieses uartdingen und vor allem "Zeile 195" müssen ja 
irgendwo herkommen. Ich kenne Eclipse nicht, aber irgendwo wird es 
Buildoptions geben, guck mal nach ob da zusätzliche Libraries für den 
Linker angegeben sind.

von amateur (Gast)


Lesenswert?

Kann es sein, dass Du z.T. mit Antiquitäten arbeitest?

Möglicherweise steht in deinem Make-File ja ein anderer/alter Pfad. 
Gleiches gilt auch für die Dateiablage. Ein erfolgreich erstelltes 
Hex-File in einem "falschen" Verzeichnis ist auch ein Erfolg;-) 
Stichwort: Environment.

von Martin Z. (Gast)


Lesenswert?

troll schrieb:
> Martin z. schrieb:
>> troll schrieb:
>>>>uartcommunikation
>>> Sind da irgendwelche zusätzlichen Dateien eingebunden? Das scheint mir
>>> ein Linkerfehler zu sein.
>>
>> nein hab nichts weiteres eingebunden
>
> Ganz sicher? Dieses uartdingen und vor allem "Zeile 195" müssen ja
> irgendwo herkommen. Ich kenne Eclipse nicht, aber irgendwo wird es
> Buildoptions geben, guck mal nach ob da zusätzliche Libraries für den
> Linker angegeben sind.

ja genau das mit der zeile 195 hat mich auch gewundert. der name 
uartconnection ist der projektname und der name der .c datei mit dem 
kleinen code.

wenn ich projekte mit anderen namen erstelle steht da dann auch der 
entsprechende name in der fehlermeldung und da gibt es keine zeile 195.

von Linüx (Gast)


Lesenswert?

cyblord ---- schrieb:
> int main() {
>
> ein void sollte da doch nicht rein, sonst ists doch ein prototyp. Bin
> aber nicht sicher ob nicht beides geht.

Auch wenn es kein Prototyp ist das void gehört weg.

von Martin Z. (Gast)


Lesenswert?

amateur schrieb:
> Kann es sein, dass Du z.T. mit Antiquitäten arbeitest?
>
> Möglicherweise steht in deinem Make-File ja ein anderer/alter Pfad.
> Gleiches gilt auch für die Dateiablage. Ein erfolgreich erstelltes
> Hex-File in einem "falschen" Verzeichnis ist auch ein Erfolg;-)
> Stichwort: Environment.

eigendlich ist alles aktuell.
die projekte werden in /username/workspace/projektname gespeichert
die anderen dateien vom projekt landen auch in dem ordner ich kann mir 
nicht vorstellen das die hex dann sonstwo landet.
ich habe die makefiles beider projekte die sich in dem Release ordner 
befindet verglichen die sind bis auf die projektnamen identisch.

von Martin Z. (Gast)


Lesenswert?

ich kapier es nicht...
nachdem ich jetzt zum 30. mal versucht mal die hex zu erstellen geht es 
auf einmal...

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.