Forum: Compiler & IDEs Object-file not found...GCC/AVRstudio


von Marian (Gast)


Lesenswert?

Hallo,

ich habe ein Problem mit dem AVRStudio. Ich wollte mal den Source-Code
aus diesem Thread:
http://www.mikrocontroller.net/forum/read-4-90147.html#new

ausprobieren. Haben ihn runtergeladen, entpackt und dann versucht mit
AVRStudio das ganze zum laufen zu bekommen. Habe also ein neues Projekt
gemacht und die ganzen Dateien von ihm(Uli, Version 2.5) in den
Projektordner verschoben. Dann habe ich im Studio alle .c und .h Files
zum Projekt hinuzugefügt und das externe Makefile zum compilieren
ausgewählt. Hat auch funktioniert, nur beim Build meckert das Studio
rum.
Diese Fehlermeldung kommt:
gcc plug-in: Error: Object file not found on expected location
C:\Dokumente und Einstellungen\mlueder\Eigene Dateien\mmc\mmc.elf

Wie kann ich dem Studio beibringen, das er die main.elf erzeugen soll
und nicht immer die mmc.elf?

Ich habe danach probiert mit meinem eigenen Makefile das Projekt zum
laufen zu bekommen aber da kommt dann diese Fehlermeldung:
main.o(.text+0x4e): In function `main':
C:\Dokumente und Einstellungen\mlueder\Eigene Dateien\SD/main.c:71:
undefined reference to `mmc_init'
main.o(.text+0x5e):C:\Dokumente und Einstellungen\mlueder\Eigene
Dateien\SD/main.c:75: undefined reference to
`fat_cluster_data_store'
main.o(.text+0x66):C:\Dokumente und Einstellungen\mlueder\Eigene
Dateien\SD/main.c:81: undefined reference to `mmc_read_csd'
main.o(.text+0xea):C:\Dokumente und Einstellungen\mlueder\Eigene
Dateien\SD/main.c:96: undefined reference to `fat_read_dir_ent'
main.o(.text+0x182):C:\Dokumente und Einstellungen\mlueder\Eigene
Dateien\SD/main.c:110: undefined reference to `fat_search_file'
main.o(.text+0x1b0):C:\Dokumente und Einstellungen\mlueder\Eigene
Dateien\SD/main.c:116: undefined reference to `fat_read_file'

Kann mir eine von euch helfen?

Gruß,

Marian

von Werner (Gast)


Lesenswert?

obs hilft weiss ich nicht, aber:
   - benutze einen pfad ohne leerzeichen
   - mmc liegt in ....\Eigene Dateien\mmc, aber main liegt in
...\Eigene
Dateien\SD/main.c
   zusätzlich ist da auch noch ein / (Schrägstrich, nicht Backslash)

da würde ich mal anfangen zu suchen
Werner

von Karsten Brandt (Gast)


Lesenswert?

"undefined reference to" bedeutet nichts anderes als das Du ein Symbol
(sei es eine Variable oder eine Funktion) in Deiner main.c benutzt, die
der Linker nicht in Deinen Sourcen finden kann.
Mit anderen Worten wahrscheinlich ist die Angabe der Quellen in Deinem
Makefile nicht komplett.

von Karsten Brandt (Gast)


Lesenswert?

Am besten Du stellst mal Dein Makefile rein!

von Marian (Gast)


Lesenswert?

@Werner: Das mit mmc und SD ist klar. Habe sicherheitshalber 2 Projekte
erstellt, einmal mit dem originalen Makefile und einmal mit meinem.
Die erste Fehlermeldung bezog sich nur auf das erste Problem.
Das mit dem Pfad ohne Leerzeichen kann ich leider nicht testen. Hört
sich jetzt dumm an aber : Ich habe es noch nicht geschafft, den Pfad
des Projektes im AVRstudio zu ändern. Kann mir einer sagen wie das da
geht?

Das mit dem \ könnte natürlich bei dem 2. Problem die Fehlermeldung
erklären. Muss ich morgen mal nachschauen warum der da ist.

@Karsten Brand: Werde ich auch mal morgen überprüfen!

Danke erstmal :)

von Werner (Gast)


Lesenswert?

Du legst einfach einen neuen Ordner C:\AVR an und kopierst die
Verzeichnisse rüber. Im Avr Studio öffnest du dann einfach das Projekt
in dem neuen Verzeichnis.

Werner

von Marian (Gast)


Lesenswert?

Ok habe es mit eurer Hilfe hinbekommen. Ich dachte das AVRstudio
schreibt ins makefile automatisch alle Sourcefiles mit rein,naja jetzt
weiß ich es besser. Zuletzt musste ich nur noch den Outputfilenamen
ändern und dann hat es geklappt.

Danke :)

von 5sho (Gast)


Lesenswert?

ich hatte mal das selbe problem. ursache war eine globale variable die 
in einem header file nicht mit "static" deklariert war

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.