www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MP3-Player Compilierungsproblem


Autor: Johannes H. (menschenskind)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Mein Headerdatei enthält u.a. folgendes:

typedef struct _AUDIO_DATA{
  u16 bitrate;
  u16 sample_rate;
  u08 is_stereo;
}AUDIO_DATA;

Ich erhalte vom Compiler für die 1. Zeile:  error: redefinition of 
'struct _AUDIO_DATA'

Der Code ist vom alp_mp3_8515-Projekt, hier aus dem Forum.
http://www.mikrocontroller.net/topic/14821

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AUDIO_DATA ist in vs1001.h bereits definiert.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
redefinition of'struct _AUDIO_DATA'

das wird irgendwoanders schonmal definiert
entweder fehlt eine #include irgendwo oder die .h ist nicht korrekt 
geschrieben

Autor: Johannes H. (menschenskind)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist ziemlich seltsam.

Ich habe die Dateien aus dem Archiv nochmal in einen anderen Ordner 
entpackt und mit diesen Dateien nochmal ein neues Projekt im AVR-Studio 
erstellt und compilieren lassen.
Haufenweise Fehler: cbi, sbi, outp... undefined reference.

Wieso kommen die nicht bei meinem ursprünglichen Projekt?
Oder hab ich bei der Projekterstellung was falsch gemacht? Man kann da 
ja den Debugger-Typ festlegen.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das tatsächlich in deiner Header-Datei steht, ist das ganz 
miserabler Programmierstil.

DEFINITIONEN GEHÖREN NICHT IN HEADER-DATEIEN!!!111einself

Was die doppelte Deklaration angeht: So ein Rahmen hilft da:
#ifndef BLA_H
#define BLA_H
...
#endif
Nein, der Rahmen hilft nicht gegen doppelte Definitionen.

Autor: Johannes H. (menschenskind)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch mit Rahmen wird's nicht besser.

Aber ich dachte, dass gerade Headerdateien für Definitionen und anderen 
Kleinkram da sind.
Nur echter Funktionscode sollte da meines Wissens eher nicht drinstehen.

Ich hab echt alle Dateien durchsucht, diese struct wird wirklich nur 
dort erstellt.
Ganz schön nervig dieser Fehler!

Autor: Johannes H. (menschenskind)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Könntet ihr euch nicht mal schnell den Code reinladen und compilieren, 
nur um einen Fehler von meinem AVR-Studio evtl. auszuschließen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Johannes Hofmann schrieb:

> Könntet ihr euch nicht mal schnell den Code reinladen und compilieren,
> nur um einen Fehler von meinem AVR-Studio evtl. auszuschließen?

OK.
Hab das original Projekt aus der Codesammlung genommen.
Neues AVR Studio Projekt.
Als Prozessor hab ich einen Mega8515 eingestellt.

Alle Source Files hinzugefügt.
Alle Header Files hinzugefügt.

Für die sbi, cbi, outp, inp Fehler hab ich in types.h schnell ein paar 
Makros eingefügt

compiliert.

Um die signedness Warnungen darfst du dich selber kümmern :-)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Füg folgende Zeile in die Dateien mit
den Fehlermeldungen zu sbi,cbi,outp.. ein.

#include <compat/deprecated.h>

Dann kompiliert der Originalcode bei mir.
Gibt noch einen Haufen Warnings, aber darum
kann man sich später noch kümmern.

Ich habe es allerdings nicht mit AVR Studio
ausprobiert, sondern direkt eingegeben:

make clean
make all

Es wird dann eine HEX Datei erzeugt.

>Ich erhalte vom Compiler für die 1. Zeile:  error: redefinition of
>'struct _AUDIO_DATA'

Die Fehlermeldung bekomme ich mit dem Originalcode gar nicht.
Wie sieht denn dein Code aus?

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.