Eigene Header Datei richtig einbinden

OP #2502614
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren