Atmel Studio #include Problem

Gast #4904418
Lesenswert?

huhu

Habe in mein Projekt eine hd44780.c und eine hd44780.h Datei geschoben.

Um sie im Main anzubinden habe ich #include "hd44780.h" benutzt. Was zu 
Fehlermeldungen geführt hat, nehme ich jetzt  #include "hd44780.c" hinzu 
funktioniert alles.

Normal muß ich doch nur #include "hd44780.h" einfügen oder?

Gruß

Hawk
Gast #4904437
Lesenswert?

Lad einmal den Code hoch.
Hast du die includes mit "" oder <> umklammert?
Bei "" wird im eigenen Verzeichnks gesucht und bei <> in einem 
Stammverzeichnis für libs.
Sind die Funktionen im .h file mit "extern" gelabelt?
Gast #4904505
Lesenswert?

Hawk schrieb:
> bitte schön

ich kenne das aktuelle Studio nicht, aber das C und H in einer Liste 
stehen finde ich merkwürdig.

bei mir gibt es Sourcefile und Headerfiles dort sie sie dann 
einsortiert.

Auch der Misch zwischen C++ und C könnte Probleme machen.
Gast #4904521
Lesenswert?

Johann L. schrieb:
> Funktioniert das C-Modul im C++-Kontext? D.h. sind globale
> Deklarationen
> brav mit extern "C" versorgt?

Sobald ich #include "hd44780.c" mit hinzunehme funktioniert das Display 
einwandfrei.
Globale Variablen oder Konstanten sind mir jetzt nicht aufgefallen.

Peter II schrieb:
> Hawk schrieb:
>> bitte schön
>
> ich kenne das aktuelle Studio nicht, aber das C und H in einer Liste
> stehen finde ich merkwürdig.
>
> bei mir gibt es Sourcefile und Headerfiles dort sie sie dann
> einsortiert.
>
> Auch der Misch zwischen C++ und C könnte Probleme machen.

Wenn ich neue Sourcefile und Headerfiles erstelle, stehen die aus so wie 
jetzt in der Liste. Das mischen macht keine Probleme in der Richtung.
Gast #4904525
Lesenswert?

Hawk schrieb:
> Wenn ich neue Sourcefile und Headerfiles erstelle, stehen die aus so wie
> jetzt in der Liste. Das mischen macht keine Probleme in der Richtung.

aber irgendwie muss das Studio wissen, welche Dateien er Compilieren und 
dem linker übergeben muss. Und bei dir übergibt er die hd44780.c nicht 
dem linker. (genauer die hd44780.o)
Persönliche Seite #4905870
Lesenswert?

Hawk schrieb:
> Johann L. schrieb:
>> Funktioniert das C-Modul im C++-Kontext? D.h. sind globale
>> Deklarationen brav mit extern "C" versorgt?
>
> Sobald ich #include "hd44780.c" mit hinzunehme funktioniert das Display
> einwandfrei.

U.U. haben entsprechenden Identifier dann aber eine andere Linkage.

Außerdem wird der Code dann als C++-Code übersetzt, da er in einem 
C++-Modul includet ist.

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