[Arduino/Platformio/VSC] #include nimmt falsche Datei

OP #5699664
Lesenswert?
• ▲
▼
Hi,

ich programmiere ein Arduino-Programm. Das ganze jetzt mal in 
VisualStudioCode mit PlatformIO. Kann ich jedem nur mal empfehlen einen 
Blick darauf zu werfen ;-)

Nun möchte ich in diesem Programm die greiman/SdFat Lib verwenden. 
PlatformIO hat die auch heruntergeladen und in mein entsprechendes 
Benutzerverzeichnis installiert: 
[user]\.platformio\lib\SdFat_ID322\src\SdFat.h

Wenn ich jetzt ein #include "SdFat.h" mache, kann ich aber trotzdem 
nicht das Objekt SdFat deklarieren: "'SdFat' does not name a type".
Jetzt habe ich schon herausgefunden, dass es eine zweite SdFat.h gibt, 
nämlich 
[user]\.platformio\packages\framework-arduinoavr\libraries\SD\src\utilit 
y\SdFat.h

Wie bekomme ich jetzt Arduino/PlatformIO/VisualStudioCode dazu, die 
richtige SdFat.h auszuwählen, ohne den absoluten Pfad anzugeben?
Gast #5699921
Lesenswert?
• ▲
▼
Das Problem hatten andere schon, die Arduino-Entwickler meinten:
1
... that this can be confusing for
2
novice users, when for example a platform library overrides a builtin
3
library, which is typically considered "normal" and should not generate
4
a warning.
OP #5699992
Lesenswert?
• ▲
▼
Normal ist das Verhalten irgendwie nicht. Zumindest nicht so, wie ich es 
als normal bewerten würde und auch nicht konsequent.

Was ich vergessen habe zu erwähnen, und dessen Relevanz sich jetzt auch 
erst mit weiteren Tests herausgestellt hat:
Ich möchte die SdFat-Lib in einer Projekt-Lib verwenden.
Dafür gibt es bei PlatformIO einen extra Ordner und PlatformIO erwartet 
dann wohl auch für jede Projekt-Lib einen seperaten Ordner.

Folgende Varianten:
- Verwendung in /main.cpp: Funktioniert

- Verwendung in /lib/foolib.h: richtige Lib wird ausgewählt, aber in 
main.cpp wird die foolib.h nicht gefunden

- Verwendung in /lib/foolib/foolib.h: foolib.h wird in main.cpp 
gefunden, in foolib.h wird aber, wie beschrieben, die falsche Lib 
ausgewählt.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.