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?
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. |
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.
:
Bearbeitet durch User
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.