AFAIK, це химерність, вбудована в IDE Arduino. Найкращий спосіб, який я можу придумати, - це структура файлів на кшталт:
ArduinoWorkspace --- /myproj/ ----+ /src/ --------+ myproj.cpp
+ myproj.ino + sensor.h
+ sensor.cpp
+ (more files)
, де myproj.cpp просто основний.cpp #include
. Це повинно залишати ваші файли проекту "чистими" таким чином, що вони також повинні працювати в більш типовому середовищі.
Оновлення:
Я запозичив назву "main" з вашого запитання, але, замислившись, "main" - це зарезервоване ім'я, зокрема, кожна програма C або C ++ має main.c або main.cpp як код верхнього рівня, що надається системою, якщо ви не надаєте його. Тож я уникав використовувати це як ім'я папки та проекту (але не соромтеся спробувати), і я оновив діаграму. Вам потрібна папка проекту та однойменний файл .ino в ньому. Файл .ino міг
#include <src/anything-else-you-like>
, наприклад, ваш код верхнього рівня, таким чином, витягуючи все інше. Вам може знадобитися .ino для #include
кожного з файлів у src
папці, якщо компілятор не з'ясує самостійно, саме там знаходяться інші ваші файли.
BTW, якщо ви використовуєте ім’я main.cpp для свого верхнього файлу, вам доведеться викликати функції setup () і loop () (і функцію послідовних подій, якщо ви використовуєте це). Напевно, найкраще залишити ім’я 'main' у спокої, нехай система надає однакове основне для кожної програми Arduino, отримане за замовчуванням, і написати свій проектний проект типовим способом Arduino - починаючи з setup () та loop ().
myproj.cpp
, ти маєш на увазіmyproj.ino
? Бо я не бачу, деmyproj.cpp
це!