Forum: Mikrocontroller und Digitale Elektronik Einbindung von UART.H


von Amateur123 (Gast)


Lesenswert?

../Test123.c:6:18: fatal error: uart.h: No such file or directory
compilation terminated.
make: *** [Test123.o] Fehler 1
Build failed with 1 errors and 0 warnings...

Ich habe ein Anliegen an die Profis, ich bin in dem Gebiet ein Neuling. 
Habe mich durchs Internet geklickt und weiß nicht mehr weiter...
Ich arbeite mit dem Atmel-Studio4 und kann mir nicht den fehler 
erklären. Ich will eine Verbindung zu dem RS232 erstellen. Habe die 
UART.C und UART.H Dateien in das Programm schon eingebunden, aber 
trotzdem schafft das Programm nicht, es zu kompilieren...
Kann mir bitte jemand einen Hilfreichen Tipp geben??

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die Fehlermeldung ist eindeutig: Der Compiler kann die Datei nicht 
finden.

Wenn Du unter einem unixoiden Betriebssystem unterwegs bist, muss der 
Dateiname exakt richtig geschrieben werden, UART.H ist was anderes als 
uart.h.

von Arthur L. (fredi22)


Lesenswert?

Ich habe deinen Tipp befolgt und habe mir das mal genauer angeguckt. Bei 
der Header File ist der Name zwar klein geschrieben, so wie sonst 
überall, aber die Befehle in der Datei uart.h sind alle in 
Großbuchstaben...
Kann es damit zusammen hängen??
Muss ich eventuell noch was besonderes beachten, beim einbinden??

Danke für die schnelle Antwort ;-)

von W.S. (Gast)


Lesenswert?

Arthur Laut schrieb:
> und habe mir das mal genauer angeguckt..

Hat dir der Rufus es denn nicht deutlich genug gesagt?

Also nochmal:
Beantworte zuerst mal die Frage:
Arbeitest du
a) mit Windows
oder
b) mit Linux (und vergleichbarem)?

wenn b, dann achte auf exakt gleiche Groß- bzw. Kleinschreibung.

Wenn a, dann ist dies egal. Windows ist da nicht so zickig.

Dann solltest du gucken, ob dort steht
#include <uart.h>
oder
#include "uart.h"

Das ist ein Unterschied! Im ersten Fall muß die Datei im 
Includeverzeichnis des Compilers sthen, im zweiten Fall genau dem 
Verzeichnis, wo auch die .c Datei drinsteht.

Klaro?

W.S.

von Arthur L. (fredi22)


Lesenswert?

Hallo,
ich arbeite mit Windows7. Sollte also keine Probleme bereiten...
Die oben erwähnten Unterschiede kenne ich, hatte die auch 
berücksichtigt.
Gibt es Unterschiede bei der Datei UART.H, vielleicht habe ich ja die 
falsche Datei eingebunden??
Habe ich das richtig verstanden:
Bei Atmel Studio 4 bindet man die Dateien oben Links ein. Einmal in die 
Source Files und einmal in die Header Files?
-In die Header Files bindet man die uart.h ...
-In die Source Files bindet man die uart.c ...

von Karl H. (kbuchegg)


Lesenswert?

Arthur L. schrieb:
> Hallo,
> ich arbeite mit Windows7. Sollte also keine Probleme bereiten...
> Die oben erwähnten Unterschiede kenne ich, hatte die auch
> berücksichtigt.
> Gibt es Unterschiede bei der Datei UART.H, vielleicht habe ich ja die
> falsche Datei eingebunden??

Welchen Teil von

"Die Datei kann nicht gefunden werden"

verstehst du nicht?

> Bei Atmel Studio 4 bindet man die Dateien oben Links ein.

Darum gehts nicht.

Wenn sich der Compiler (Preäprozessor um genau zu sein) deine *.c Datei 
vornimmt, dann findet er da drinnen die Anweisung
1
#include "uart.h"

also versucht er die Datei zu öffnen (zuerst mal auf demselben 
Verzeichnis, auf dem auch die *.c Datei ist, in der der #include 
enthalten ist). Und bei diesem Versuch kommt vom Filesystem die Meldung 
zurück "Sorry, aber auf diesem Verzeichnis gibt es keine Datei mit 
diesem Namen"

Also: überprüf, ob die Datei auf diesem Verzeichnis ist, kopier sie hin, 
wenn nicht und alles ist gut. Prüfe den Dateinamen auf Tippfehler, 
korrigiere ihn, falls welche da sind und alles ist gut. Sieh dir an, ob 
die Datei vielleicht ihre Endung *.h verloren hat, als du sie mal 
umkopiert hast, ergänze sie und alles ist gut (und schalte dir im 
Explorer die Anzeige der Dateiendungen ein falls das noch nicht 
geschehen ist. Wir sind Softwerker und keine BWL-Studenten - wir können 
mit Dateiendungen was anfangen)

: Bearbeitet durch User
von Arthur L. (fredi22)


Lesenswert?

@Karl Heinz Buchegger

Das was ich an der ganzen Sache nicht verstehe ist, dass alles soweit 
richtig eingebunden ist und auch richtig geschrieben ist....
Und trotzdem die Datei nicht gefunden wird...
Vielleicht funktioniert die Atmel Software nicht richtig, ich guck mal 
ob eine Neuinstallation was bringt...
Anders kann ich mir das nicht erklären, habe schon alles ausprobiert...

Danke für die Hilfe

von Oliver (Gast)


Lesenswert?

Um noch einem (verständlichen) Missverständnis vorzubeugen:

Ob du die Datei oben links im Studio "einbindest" oder nicht, spielt 
keine Rolle. Da kannst du problemlos Headerdateien einbinden, die in 
anderen Verzeichnissen liegen, aber der Compiler findet die trotzdem 
nicht. Dazu müsstest du von Hand in den Projektoptionen den Suchpfad 
hinzufügen.

Oliver

von Arthur L. (fredi22)


Lesenswert?

@Oliver

Das habe ich noch nicht gemacht, danke für den Tipp ;-)
Wo genau muss ich da den Pfad für die uart Dateien eingeben??
Unter Libraries oder Include Directories, oder in beide??

Danke vorab ;-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du könntest Deine uart.c/uart.h einfach in das Verzeichnis kopieren, wo 
auch Dein anderer Quelltext (main.c etc.) zu finden ist.

von Arthur L. (fredi22)


Lesenswert?

Hat geklappt, vielen DANK ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.