-
Vorher war die Reihenfolge richtig.
Jetzt versucht die zuerst includierte katze2.h auf Objekte zuzugreifen, die (noch) nicht definiert sind.
Vielleicht mal die #include Befehle einzeln aus .cpp ausschneiden, in .h einfügen und kompilieren lassen?
Dann kannst du beobachten, wie sich die Fehlermeldungen ändern. Vielleicht bringt dich das weiter...
Achja, vor die einzelnen Methoden musst du katze:: einfügen, sonst definierst du außerhalb der Klasse. Dann sind die katze-Variablen für die Funktionen natürlich nicht sichtbar.
Und für Bonus-Punkte in der B-Note: Klassennamen werden der Cpp-Konvention nach groß geschrieben.
-
Ich weis ja nicht, wo die ganzen Header liegen, aber sollten sie im gleichen Projektverzeichnis sein (wie katze.h), dann werden sie mit "blabla.h" eingebunden, und nicht mit <blabla.h>
Code:
#include <katze2.h>
#include "Arduino.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Motor.h>
#include <SonarSRF08.h>
mfg
-
Vielen Dank für eure Hilfe erstmal,
aber da sich das Problem mit den Nicht eigebundenen Libs/den nicht erstellten Objekten bisher nicht hat beheben lassen (egal ob die header in .h oder .cpp) liegen,
binde ich sie jetzt eben direkt und einzeln ein und verzichte auf eine eigene Klasse, die alles bündeln sollte.
Die header sind mit <bsp.h> übriegens richtig eingebunden, da sie im Libaries Ordner der Arduino ide liegen.
vg Malte
-
Ja, irgendwie geht das mit dem Einbinden von Libraries aus einer header-Datei heraus nicht.
Was es aber sollte, denn in VisualStudio oder Dev-Cpp funktioniert das tadelos.
SCHADE. Auch um die Zeit, die man braucht, um das rauszufinden.
Falls jemand weiss, warum der Arduino-Linker das nicht gebacken kriegt... würde mich interessieren.