mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Funktion in Headerdatei auslagern, AVR-Studio


Autor: Wilfried H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich habe die Funktionen von einem funktionsfähigen Programm in eine 
Headerdatei ausgelagert.
Beim linken bekomme ich aber städig den Fehler im AVR-Studio "undefined 
reference to 'Name der Funktion'!!
Ich habe schon das Forum durchsucht, aber leider noch keine passende 
Anregung gefunden. Habe bereits mit den Schlüsselwörtern "extern" 
rumprobiert, hatte aber keinen Erfolg.

Irgendwie weiss ich grad nicht, was da sein könnte! Hat von Euch Profis 
irgendjemand eine Idee?

Vielen Dank schon mal im Voraus!

Wilfried H.

Autor: Manfred B. (vorbeigeschlendert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die Funktionen in eine Headerdatei ausgelagert?!? oder nur die 
Prototypendefinitionen?

Autor: Wilfried H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe folgendes vom c-Programm entfernt und in die Headerdatei 
reinkopiert.

void setup_uart(void)
{
      Init_Register von UART
      ....

}

und die Headerdatei im c-File eingebunden.
Hab das gleiche bereits mit einer put_char Funktion ausgeführt und 
komischerweise funktioniert es da!
Danke schon mal

Wilfried

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

In header-Files können nur Funktionsdeklarationen angegeben werden. Der 
Funktionsrumpf muss im c File erfolgen.

Autor: Wilfried H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

erstmals danke Tobi!

Heißt das dann, dass ich die Funktion in ein neues c-File z.B. Namens 
setup_uart.c kopiere und im Headerfile setup_uart.h nur bekannt mache?

Falls das oben so stimmt, wie wird dann das zusäzliche c-File angelegt 
und vorallem wo gespeichert, dass ich es nicht in jedem neuen Projekt 
neu "rüberkopieren" muss?
Arbeite mit AVR-Studio.

Sorry, bin noch Anfänger!

Wilfried

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.