Eigene Header Datei richtig einbinden

OP #2502614
Hi an alle.

Ich versuche eine eigene Header Datei einzubinden, da in mein Programm 
viele Funktionen reinkommen und ich somit für einen besseren Überblick 
sorgen möchte.

Wenn ich aber mit "make" auf der Console versuche zu kompelieren, dann 
bekomme ich die Fehlermeldung: Undefined Reference to 'test'

Wo könnte hier der Fehler liegen?

Im Hauptprogramm binde ich die Datei folgendermaßen ein:
#include "../myheaderfiles/testlib.h"

Und ich habe im Hauptprogramm folgenden Aufruf drin:
test('A');

Die Datei testlib.h sieht wie folgt aus:
#ifndef __TESTLIB_H
#define __TESTLIB_H

void test(char x);

#endif /* TESTLIB_H */

Die Datei testlib.c sieht so aus:
#include "testlib.h"

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <inttypes.h>
#include <stdio.h>
#include "delay.h"

void test(char x) {
// do something
}

Hat jemand eine Idee wo hier der Fehler liegen könnte?

Víelen Dank.
#2502627
El Nino schrieb:
> Hi an alle.
>
> Ich versuche eine eigene Header Datei einzubinden, da in mein Programm
> viele Funktionen reinkommen und ich somit für einen besseren Überblick
> sorgen möchte.
>
> Wenn ich aber mit "make" auf der Console versuche zu kompelieren, dann
> bekomme ich die Fehlermeldung: Undefined Reference to 'test'

undefined reference ist eine Fehlermeldung vom LInker, der aus den 
Einzelteilen das endgültige komplette Programm zusammenbaut.

Du musst auch testlib.c compilieren und vom Linker zum Programm 
dazufügen lassen. Sonst fehlt ja die Implementierung dieser Funktion. 
Und genau das teilt dir der Linker mit.

Also: einfach testlib.c mit ins Projekt aufnehmen und schon klappts.

http://www.mikrocontroller.net/articles/FAQ#Ich_hab_da_mehrere_.2A.c_und_.2A.h_Dateien._Was_mache_ich_damit.3F

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.