Hallo Leute, versuche bereits seit 3 Stunden die FatFs-Library für den PIC32 zu compilieren. Bekomme jedoch immer die Meldung File not found bei folgenden Dateien: #include <FatFs/diskio.h> #include <FatFs/ff.h> etc... das Project-Fenster sieht wie im Anhang aus, die Include Dateien wurden in den Subdirectory FatFs hineingefügt, werden aber nicht gefunden. Was mache ich falsch???? Gruß M.H.
Falsche Klammern bei #include, da musst Du Anführungszeichen benutzen:
1 | #include "FatFs/diskio.h" |
2 | #include "FatFs/ff.h" |
Die <...> bedeuten 'such im Include Pfad', die "..." bedeuten 'such (auch) im aktuellen Verzeichnis'. Besorge Dir besser mal ein C -Buch.
Werds gleich mal testen. Jim Meba schrieb: > Die <...> bedeuten 'such im Include Pfad', die "..." bedeuten 'such > (auch) im aktuellen Verzeichnis'. Im Beispielprojekt von MICROCHIP wird das aber so gemacht und es funktioniert!!!
M. H. schrieb: > Werds gleich mal testen. > > Jim Meba schrieb: >> Die <...> bedeuten 'such im Include Pfad', die "..." bedeuten 'such >> (auch) im aktuellen Verzeichnis'. > > Im Beispielprojekt von MICROCHIP wird das aber so gemacht und es > funktioniert!!! Schön. Ist trotzdem Quatsch. Hast du im Beispielprojekt mal nachgesehen, ob da zusätzliche INclude Pfade in der IDE eingestellt wurden? gewöhn dich daran < > sind systemspezifische Header " " sind projektspezfische Header
Mit Aunführungszeichen gehts nicht, da die Datei nicht im Ordner ./FatFs/diskio.h liegt sondern im Ordner ./include/fatfs/diskio.h Nochmal angemerkt: Das Beispielprojekt von Microchip geht auf diese weise.
M. H. schrieb: > Mit Aunführungszeichen gehts nicht, da die Datei nicht im Ordner > ./FatFs/diskio.h liegt sondern im Ordner ./include/fatfs/diskio.h Dann gibts da halt eben den Pfad mit dem zusätzlichen include an. Mach doch kein Drama draus.
das ist das Beispielprojekt. einfach entpacken und im Ordner "Microchip Solutions\pic32_FATFs_demo_sk" ist das Projekt. Das lässt sich compilieren.
M. H. schrieb: > das Project-Fenster sieht wie im Anhang aus, die Include Dateien wurden > in den Subdirectory FatFs hineingefügt, werden aber nicht gefunden. > > Was mache ich falsch???? Hast du das Verzeichnis "Header Files" denn auch in deinem Include-Pfad angegeben? Wie sieht denn die Compiler-Kommandozeile aus? Übrigens: Datei- und Verzeichnisnamen, die Leerzeichen enthalten, sollte mal beim Compiler vermeiden. Die führen häufig zu Problemen.
Karl Heinz Buchegger schrieb: > Dann gibts da halt eben den Pfad mit dem zusätzlichen include an. sorry, aber was für ein zusätzliches include? Vesteh ich nicht ganz.
Sorry zip vergessen... Rolf Magnus schrieb: > Hast du das Verzeichnis "Header Files" denn auch in deinem Include-Pfad > angegeben? Warum? Der Ordner ist standard.
M. H. schrieb: > Karl Heinz Buchegger schrieb: >> Dann gibts da halt eben den Pfad mit dem zusätzlichen include an. > > sorry, aber was für ein zusätzliches include? > > Vesteh ich nicht ganz. Das hier > ./include/fatfs/diskio.h ******* Offenbar hast du das FatFs noch in ein Subverzeichnis include verpackt. Na dann gibs halt einfach an
1 | #include "include/FatFs/diskio.h" |
letzten Endes gehts nur um die Frage: ausgehend vom aktuellen Projektverzeichnis, wie ist der Pfad zum Header File. ein . ist das aktuelle Verzeichnis ein .. ist das darüber liegende Verzeichnis (wobei du den ersten . nicht schreiben musst. Ein Pfad der nicht mit / beginnt wird sowieso immer vom aktuellen Verzeichnis aus gesehen)
Karl Heinz Buchegger schrieb: > M. H. schrieb: >> Karl Heinz Buchegger schrieb: >>> Dann gibts da halt eben den Pfad mit dem zusätzlichen include an. >> >> sorry, aber was für ein zusätzliches include? >> >> Vesteh ich nicht ganz. > > Das hier > >> ./include/fatfs/diskio.h das muss ich aber in jeder einzelnen Datei ändern, da dass in fast jeder vorkommt. und jedesmal daran anpassen, wo die Datei liegt, in die ich das einsetze..... Ganz schöne Arbeit...
Hat sich schon jemand das Beispielprojekt angeguckt? Dann müsste ziemlich eindeutig sein, wo mein Problem ist, denn im Beispielprojekt liegen die Include-Dateien im Ordner ..\microchip\include\fatfs (relativ zum Projekt) und werden aber trotzdem einfach über #include <FatFs\...> eingebunden.
M. H. schrieb: > Karl Heinz Buchegger schrieb: >> M. H. schrieb: >>> Karl Heinz Buchegger schrieb: >>>> Dann gibts da halt eben den Pfad mit dem zusätzlichen include an. >>> >>> sorry, aber was für ein zusätzliches include? >>> >>> Vesteh ich nicht ganz. >> >> Das hier >> >>> ./include/fatfs/diskio.h > > das muss ich aber in jeder einzelnen Datei ändern, da dass in fast jeder > vorkommt. und jedesmal daran anpassen, wo die Datei liegt, in die ich > das einsetze..... Ganz schöne Arbeit... Dann kommt Version 2 zum Zug. Praktisch allen Compilern kann man zusätzliche Verzeichnisse vorgeben (die werden irgendwo in der IDE eingestellt), die dann ebenfalls abgesucht werden. Praktisch gesehen fungieren dann diese zusätzlichen Verzeichnisse als temporäre Arbeitsverzeichnisse, mit denen ( + natürlich dieser relative Pfad) erneut versucht wird das File zu finden. > Ganz schöne Arbeit... :-) du hast im Moment 7 Header Files und 5 Source Code Files. Wenns mal 70 Header und 50 Source Files sind, .....
M. H. schrieb: > Hat sich schon jemand das Beispielprojekt angeguckt? Dann müsste > ziemlich eindeutig sein, wo mein Problem ist, denn im Beispielprojekt > liegen die Include-Dateien im Ordner ..\microchip\include\fatfs (relativ > zum Projekt) und werden aber trotzdem einfach über #include <FatFs\...> > eingebunden. Tja. Da wird wohl irgendwo in den Projekteinstellungen eingestellt sein, dass es ein zusätzliches Include-File Verzeichnis Namens "..\microchip\include" gibt. Da ich aber kein MPLAB verwende, kann ich dir nicht sagen, wo das eingestellt wird. Irgendwo in den "Project Settings" oder "Project Options" oder wie das dann eben bei MPLAB heißt.
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.