Hallo Leute Ich bin gerade daran, eines meiner gerade angekommenen HD44780-kompatiblen LC-Displays anzusteuern. Dafür wollte ich die lcd-routines.h und .c hier von wwww.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung nehmen. Wenn ich im Programm schreibe: ... #include <lcd.routines.h> ... kommt die Fehlermeldung: Error 1 lcd-routines.c: No such file or directory Ich denke mal das heißt, dass Atmel Studio nicht weiß, wo der header ist. Meine Fragen: 1. Stimmt es, dass ich im Programm #include <lcd.routines.h> schriben muss? 2. Wohin muss ich den header reinkopieren, dass Atmel Studio weiß, wo er ist?
Valentin S. schrieb: > #include <lcd.routines.h> Es gibt einen Unterschied zwischen
1 | #include <lcd-routines.h> |
und
1 | #include "lcd-routines.h" |
spitze Klammern bedeuten, dass es sich um einen sog. System-header handelt. Also einen, der zum C System gehört. Dementsprechend sucht der Compiler diese Header in den Systemverzeichnissen. Gänsefüsschen bedeutet, dass es ein projektspezifischer Header ist. D.h. der Compiler sucht den in den Verzeichnissen, die ihm als zum Projekt zugehörig bekannt sind. Das beinhaltet normalerweise auf jeden Fall das Verzeichnis, auf dem das benutzende C-File ist.
Danke Für die Info Ich habe die spitzen Klammern wie du gesagt hast ersetzt und den header in Das Projektverzeichnis Also Dokumente\Atmel Studio\6.1\Uhr(=Projektname)reingezogen und kompiliert aber ich bekomme immer noch die gleiche Fehlermeldung. wenn ich auf den Header rechtsklick und dann goto implementation klicke öffnet den Header aber. Also der Header ist dort wo er sein soll und Atmel Studio Findet ihn auch aber die oben genannte Fehlermeldung zeigt es immer noch an.
Moment mal.
1 | Error 1 lcd-routines.c: No such file or directory |
Da ist vom C-File die Rede. Da ist das falsche File im Projekt eingetragen.
> ... Dokumente\Atmel Studio\6.1\Uhr(=Projektname) ... Ich verweigere ehrlich gesagt auch für mich diesen (in meinen Augen) Blödsinn mit benutzerbezogenem Dokumentenverzeichnis und mach das so, wie ich das immer gemacht habe. Auf C: im Rootverzeichnis (oder auf der D: Platte, je nachdem) gibt es ein Projektverzeichnis. Dort ein Subverzeichnis für AVR und dort dann wieder Subverzeichnisse für die einzelnen Projekte. Wobei ich mich an die einfache Vorgabe halte: keine Leerzeichen in Pfadnamen, keine Umlaute, Sonderzeichen nur wenns nicht anders geht und wenn das Sonderzeichen ein _ ist. Solange man auf ältere Tools angewiesen ist, hat sich das bei mir bewährt, da nichts drauf zu bauen, dass alle mit diesem 'BWLer-Schnickschnack' klar kommen. Ich brauch keinen Pfad "Powerpoint Mänager Schulung #2, Dezember 2013". Ich finde meine Sachen auch mit einfacheren und kürzeren Pfadnamen problemlos wieder :-)
Oh ja. Ich hab noch mal ein anderes Projekt aufgemacht und es neu probiert. das Problem besteht immer noch. (s. Screenshot)
ich hab jetzt noch mal ein bisschen probiert aber es geht einfach nicht. kann mir niemand helfen?
Valentin S. schrieb: > ich hab jetzt noch mal ein bisschen probiert aber es geht einfach nicht. > kann mir niemand helfen? ich denke die Antwort hat K.H. schon geschrieben. Probiere mal "vernünftige" Pfad und Dateinamen.
Sorry. ich hab den Post von Karl Heinz nicht gesehen. Wie meint ihr das mit kürzeren namen? Als ich Atmel Studio installiert hab, hat es automatisch den Ordner Atmel Studio im Verzeichnis Bibliotheken\Dokumente angelegt mit dem Unterordner 6.1, in dem meine Projekte direkt gespeichert werden. Also: Bibliotheken\Dokumente wurde von Win7 angelegt und Atmel Studio\6.1\ wurde von Atmel Studio angelegt Aber was hat das damit zu tun, dass es den header nicht Findet?
Valentin S. schrieb: > Sorry. ich hab den Post von Karl Heinz nicht gesehen. > Wie meint ihr das mit kürzeren namen? Als ich Atmel Studio installiert > hab, hat es automatisch den Ordner Atmel Studio im Verzeichnis > Bibliotheken\Dokumente angelegt mit dem Unterordner 6.1, in dem meine > Projekte direkt gespeichert werden. Ja schön. Deswegen muss man das aber noch lange nicht mitmachen. > Also: > Bibliotheken\Dokumente wurde von Win7 angelegt Das Problem ist, dass es diesen Pfad so in Wirklichkeit gar nicht gibt. Das ist so eine Art Pseudopfad, der vom Windows 'on the Fly' theoretisch immer auf den richtigen Pfad umgemappt wird. Theoretisch. Versuch einfach mal mit dem Explorer über den normalen Weg auf der Platte C: diesen Pfad zu finden. Du wirst dich wundern, der heisst in Wirklichkeit ganz anders. Und das beginnt damit, dass es auf C: gar kein Verzeichnis "Benutzer" gibt. Das heisst nämlich in Wirklichkeit "user" (oder "users", weiss nicht mehr genau) > Aber was hat das damit zu tun, dass es den header nicht Findet und was > kann ich tun, dass er ihn benutzen kann? Es muss nichts damit zu tun haben. Aber es kann. Und darum riskiere ich das erst gar nicht. Das sind Dinge mit denen will ich mich nicht rumärgern. Meine AVR-Projekte kommen auf C:\Projekte\AVR\Frequency C:\Projekte\AVR\Uhr_01 C:\Projekte\AVR\Test C:\Projekte\AVR\Forum_01 C:\Projekte\AVR\Lib\LCD C:\Projekte\AVR\Lib\USART .... und damit hat sich für mich die Sache. Ist auch wesentlich einfacher, die zum Archivieren im Explorer zu finden und zu zippen :-)
Es zwingt dich ja niemand, das Projekt in diesem Ornder anzulegen. Vor allem solltest Du keine Sonderzeichen wie '+' im Pfad benutzen. Probier mal statt: C:\Users\Valentin\Documents\Atmel Sutdio\6.1\ATmega8+LCD\Atmega8+LCD\ATmega8+LCD.c einen einfachen Pfad wie: C:\Projekt\ATmega8_LCD\main.c
Jetzt hat's funktioniert. Erst falsche Klammern, Dann die falsche Datei und der eigentliche Fehler: eine dumme Idee der Microsoft-Programmierer, die helfen soll und ohne die Hilfe von euch auch mein Projekt blockiert hätte. Danke
Valentin S. schrieb: > eine dumme Idee der Microsoft-Programmierer, die helfen soll Das musst du verstehen. BWL Studenten und Manager finden doch sonst ihre Dateien nicht mehr! Wer ahnt denn schon das die Datei "Stbtrg_2013.doc" wichtige Informationen enthält? Nein, die muss natürlich "ungerechtfertigte Steuerhinterziehungen und Schmiergeldzahlungen 2013, vertraulich.DOC" heissen. Excel und Word kommen damit klar. Aber viele alte oder ältere Entwicklertools, die zum Teil noch auf altem DOS Code basieren, und wo ein Werkzeug den Dateinamen an weitere Werkzeuge weitergibt, eben nicht. Und genau deshalb lass ich mich auf so einen (in meinen Augen) Schwachsinn nicht ein. Da ist mir jede Sekunde zu viel ärgern schon eine Sekunde zuviel. Ich bin Software-Entwickler. Ich kann eine Dateibezeichnung auch dann lesen, wenn sie keine Umlaute und/oder Sonderzeichen enthält und nicht über 2 Zeilen geht :-) Ich bevorzuge lieber kurze, dafür aber prägnante Dateinamen. gerne auch schon mal mit Abkürzungen für bestimmte Begriffe. Die dafür aber dann durchgängig.
Ich dachte halt das wären direkte, nicht sehbare verzeichnisse auf der Festplatte und fand es desshalb auch ganz praktisch aber jetzt mach ich mir einfach selber ein Paar Ordner. DAnke für den Tipp.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
