AFAIK, to dziwactwo wbudowane w Arduino IDE. Najlepszym obejściem, jakie mogę wymyślić, jest struktura plików podobna do:
ArduinoWorkspace --- /myproj/ ----+ /src/ --------+ myproj.cpp
+ myproj.ino + sensor.h
+ sensor.cpp
+ (more files)
, gdzie myproj.cpp jest po prostu main.cpp #include
. Powinno to pozostawić pliki projektu „czyste”, tak aby działały również w bardziej typowym środowisku.
Aktualizacja:
Pożyczyłem nazwę „main” z twojego pytania, ale po zastanowieniu „main” jest nazwą zastrzeżoną, w szczególności, każdy program C lub C ++ ma main.c lub main.cpp jako kod najwyższego poziomu, dostarczany przez system, jeśli nie zapewniasz jednego. Dlatego uniknąłem używania go jako nazwy folderu i projektu (ale spróbuj tego) i zaktualizowałem schemat. Potrzebujesz folderu projektu i pliku .ino o tej samej nazwie. Plik .ino może
#include <src/anything-else-you-like>
, np. plik kodu najwyższego poziomu, pobierając w ten sposób wszystko inne. Możesz potrzebować swojego .ino do #include
każdego z plików w src
folderze, jeśli kompilator sam nie zorientuje się , że tam są twoje inne pliki.
BTW, jeśli użyjesz nazwy main.cpp dla swojego górnego pliku, będzie musiał wywołać funkcje setup () i loop () (oraz funkcję zdarzenia szeregowego, jeśli go użyjesz). Prawdopodobnie najlepiej pozostawić nazwę „main” w spokoju, niech system zapewnia tę samą nazwę główną dla każdego programu Arduino, który dostaje domyślnie, i napisz kod projektu w typowy sposób Arduino - zaczynając od setup () i loop ().
myproj.cpp
masz na myślimyproj.ino
? Ponieważ nie widzę gdziemyproj.cpp
jest!Kiedy masz projekt złożony z wielu
.INO
plików, skąd IDE powinno wiedzieć, który jest „główny”? Podczas kompilacji IDE łączy wszystkie.INO
pliki w jeden plik monolityczny. Robi to zaczynając od „głównego”, a następnie dołącza każdy z pozostałych alfabetycznie do końca.Odbywa się to w ten sposób, aby zmienne globalne i globalne, które powinieneś umieścić w
.INO
pliku „głównym” , znajdowały się na początku gotowego programu.Aby to zrobić, IDE musi wiedzieć, który z plików jest „główny”. Sposób, w jaki to działa, polega na znalezieniu tego, który ma taką samą nazwę jak folder, w którym znajduje się szkic.
W UECIDE posuwam się o krok dalej i przekształcam cały folder w złożony dokument , abyś nie musiał już wchodzić do folderu i otwierać
.INO
pliku, aby otworzyć szkic - sam folder jest całym projektem szkicu. Ponownie ten rodzaj folderu jest identyfikowany jako zawierający.INO
plik o nazwie takiej samej jak folder.źródło