AFAIK, ovvero una stranezza integrata nell'IDE di Arduino. La migliore soluzione che mi viene in mente è una struttura di file simile a:
ArduinoWorkspace --- /myproj/ ----+ /src/ --------+ myproj.cpp
+ myproj.ino + sensor.h
+ sensor.cpp
+ (more files)
, dove myproj.cpp è solo #include
main.cpp. Ciò dovrebbe lasciare i file del progetto "puliti" in modo che possano funzionare anche in un ambiente più tipico.
Aggiornare:
Ho preso in prestito il nome "main" dalla tua domanda, ma a proposito, "main" è un nome riservato, in particolare, ogni programma C o C ++ ha un main.c o main.cpp come codice di livello superiore, fornito dal sistema se tu non ne fornisci uno. Quindi ho evitato di usarlo come nome della cartella e del progetto (ma sentitevi liberi di provarlo) e ho aggiornato il diagramma. Ciò di cui hai bisogno è una cartella di progetto e un file .ino al suo interno, con lo stesso nome. Il file .ino potrebbe
#include <src/anything-else-you-like>
, ad esempio, il tuo file di codice di livello superiore, estraendo così tutto il resto. Potresti aver bisogno del tuo .ino per #include
ciascuno dei file nella src
cartella, se il compilatore non riesce a capire da solo, è lì che si trovano gli altri tuoi file.
A proposito, se usi il nome main.cpp per il tuo file principale, dovrà chiamare le funzioni setup () e loop () (e la funzione evento seriale, se lo usi). Probabilmente è meglio lasciare da solo il nome 'main', lasciare che il sistema fornisca lo stesso main che ogni programma Arduino ottiene di default e scrivere il codice del progetto nel modo tipico di Arduino - iniziando con setup () e loop ().
myproj.cpp
intendimyproj.ino
? Perché non vedo dovemyproj.cpp
sia!