AFAIK, das ist eine Eigenart, die in die Arduino IDE eingebaut ist. Die beste Problemumgehung, die ich mir vorstellen kann, ist eine Dateistruktur wie:
ArduinoWorkspace --- /myproj/ ----+ /src/ --------+ myproj.cpp
+ myproj.ino + sensor.h
+ sensor.cpp
+ (more files)
, wo myproj.cpp nur main.cpp ist #include
. Dadurch sollten Ihre Projektdateien "sauber" bleiben, sodass sie auch in einer typischeren Umgebung funktionieren.
Aktualisieren:
Ich habe den Namen "main" aus Ihrer Frage ausgeliehen, aber "main" ist ein reservierter Name. Insbesondere hat jedes C- oder C ++ - Programm eine main.c- oder main.cpp-Datei als obersten Code, die vom System bereitgestellt wird, wenn Sie bieten keine. Daher habe ich es vermieden, dies als Ordner- und Projektname zu verwenden (aber probieren Sie es einfach aus), und ich habe das Diagramm aktualisiert. Was Sie brauchen, ist ein Projektordner und eine darin enthaltene .ino-Datei mit demselben Namen. Die .ino-Datei könnte
#include <src/anything-else-you-like>
B. Ihre Code-Datei der obersten Ebene, wodurch alles andere abgerufen wird. Möglicherweise benötigen Sie für Ihre .ino-Datei #include
jede Datei im src
Ordner. Wenn der Compiler dies nicht selbst herausfindet, befinden sich dort Ihre anderen Dateien.
Übrigens, wenn Sie den Namen main.cpp für Ihre Top-Datei verwenden, müssen die Funktionen setup () und loop () (und die Funktion für serielle Ereignisse, wenn Sie diese verwenden) aufgerufen werden. Es ist wahrscheinlich am besten, den Namen 'main' in Ruhe zu lassen, das System die gleiche Hauptleitung bereitstellen zu lassen, die jedes Arduino-Programm standardmäßig erhält, und Ihren Projektcode auf die typische Arduino-Weise zu schreiben - beginnend mit setup () und loop ().
myproj.cpp
meinstmyproj.ino
du Weil ich nicht sehe womyproj.cpp
ist!