ich habe ein Problem bei der Marlin 1.1.9 Kompilierung ( IDE 1.8.8 ) :
Die Bibliotheken werden nicht gefunden. Diese sind ja alle in einem Verzeichnis (User/ .../Marlin/Marlin1.1.9/Marlin). Da wohin ich das Marlin-Paket von github hinkopiert habe.
Dieser Fehler kommt massenhaft, für jede Datei einer...
Alle anderen Bibliotheken, die ich bisher benutzt habe sind im Verzeichnis .../Arduino/libraries/... jede in einem eigenen Ordner der so heißt wie die Bibliothek selbst.
Was kann ich tun, damit die Marlin libraries, die sich alle im selben Verzeichnis wie das Marlin.ino befinden auch gefunden werden?
gregorss:
Bibliotheken, die sich im gleichen Verzeichnis wie der Sketch befinden, bindest Du in den Sketch ein, indem Du
#include "bibliothek.h"
schreibst. Beachte die Anführungszeichen. Sonst steht sowas in < und >
Die Bibliotheken werde ja alle genau so versucht einzubinden, aber offensichtlich nicht gefunden. So verstehe ich zumindest die Fehlermeldung "Error while detecting libraries..."
Das ist nicht tragisch!
Nichts, was man beheben müsste.
:o Eher im Gegenteil. :o
Ich schätze, das benötigt eine Erklärung ...
Erstmal die Quelle der Meldung:
Der Arduino Builder, ist es, welcher sie dir vor die Füße wirft.
Das Programm, welches die fertige Anwendungen aus den Quellen zusammen klöppelt.
Der Builder findet die benutzten Librarys nicht im Standard libraries Ordner.
Und meckert das an.
Das ist nicht dramatisch, weil er trotzdem versucht das Gelumpe zu übersetzen.
Was ihm auch gelingt, da die benötigten Dateien im Projekt Ordner vorliegen.
Also, ausnahmsweise die Ansage: Ignoriere diese Sorte Meldungen.
Denn sie sind kein Problem.
Was mich gewundert hat ist, dass die Dateien, zu denen diese Meldung kommt, allesamt .cpp sind.
Als Teil einer Bibliothek ganz normal, mit einer gleichnamigen .h Datei.
Was aber passiert mit solchen "alleinstehenden" .cpp Dateien? Sind die "gleichwertig" wie .ino ?
purehunter:
Was aber passiert mit solchen "alleinstehenden" .cpp Dateien? Sind die "gleichwertig" wie .ino ?
Ja.
In h-Dateien (Header-Dateien) stehen üblicherweise nur die Köpfe von Funktionen und anderes Zeug - dort kann man z. B. nachsehen, wenn man wissen möchte, mit welchen Namen und Parametern Funktionen aufgerufen werden. In den cpp-Dateien stehen dann die eigentlichen Funktionskörper (das, was in den Funktionen tatsächlich passiert).
.h Dateien werden über #include-Anweisungen gefunden und beim Übersetzen von .cpp Dateien mit bearbeitet.
[ .ino Dateien werden von der Arduino-IDE zusammengefasst, etwas ergänzt und in eine gemeinsame .cpp gewandelt ]
Der eigentliche Trick besteht darin, dass die IDE alle .cpp Dateien des Projekt - Ordners mit in das Projekt übernimmt, und (hokus - pokus) auch die erforderlichen .cpp Dateien der Bibliotheken findet.