Forum: Mikrocontroller und Digitale Elektronik include <> MPLAB FatFs HILFE!


von M. Н. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Jim M. (turboj)


Lesenswert?

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.

von M. Н. (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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

von M. Н. (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von M. Н. (Gast)


Lesenswert?

das ist das Beispielprojekt.


einfach entpacken und im Ordner "Microchip 
Solutions\pic32_FATFs_demo_sk" ist das Projekt.

Das lässt sich compilieren.

von Rolf Magnus (Gast)


Lesenswert?

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.

von M. Н. (Gast)


Lesenswert?

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.

von M. Н. (Gast)


Angehängte Dateien:

Lesenswert?

Sorry zip vergessen...


Rolf Magnus schrieb:
> Hast du das Verzeichnis "Header Files" denn auch in deinem  Include-Pfad
> angegeben?


Warum? Der Ordner ist standard.

von Karl H. (kbuchegg)


Lesenswert?

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)

von M. Н. (Gast)


Lesenswert?

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

von M. Н. (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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
Noch kein Account? Hier anmelden.