AFAIK, esa es una peculiaridad integrada en el IDE de Arduino. La mejor solución que se me ocurre es una estructura de archivo similar a:
ArduinoWorkspace --- /myproj/ ----+ /src/ --------+ myproj.cpp
+ myproj.ino + sensor.h
+ sensor.cpp
+ (more files)
, donde myproj.cpp solo #include
es main.cpp. Esto debería dejar los archivos de su proyecto "limpios", de modo que también deberían funcionar en un entorno más típico.
Actualizar:
Tomé prestado el nombre "main" de su pregunta, pero reflexionando, "main" es un nombre reservado, específicamente, cada programa C o C ++ tiene main.c o main.cpp como su código de nivel superior, proporcionado por el sistema si usted no proporciona uno Así que evité usar eso como nombre de carpeta y proyecto (pero siéntase libre de probarlo) y actualicé el diagrama. Lo que necesita es una carpeta de proyecto y un archivo .ino dentro del mismo nombre. El archivo .ino podría
#include <src/anything-else-you-like>
, p. ej., el archivo de código de nivel superior y, por lo tanto, extraer todo lo demás. Es posible que necesite su .ino para #include
cada uno de los archivos en la src
carpeta, si el compilador no se da cuenta por sí solo, ahí es donde están sus otros archivos.
Por cierto, si usa el nombre main.cpp para su archivo superior, tendrá que llamar a las funciones setup () y loop () (y función de evento en serie, si la usa). Probablemente sea mejor dejar solo el nombre 'main', dejar que el sistema proporcione el mismo main que cada programa Arduino obtiene por defecto y escribir el código de su proyecto de la manera típica de Arduino, comenzando con setup () y loop ().
myproj.cpp
, Que quiere decirmyproj.ino
? ¡Porque no veo dóndemyproj.cpp
está!