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.
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.
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.